Solved

Time in milliseconds problem

Posted on 2004-09-01
6
207 Views
Last Modified: 2010-04-01
Hii all,

I am trying to do the following, which is easily judged from the code


            String clientUpdate="2004-09-01 10:30:20";
            String dbUpdate = "2004-08-31 21:54:05";
            boolean isUpToDate=false;
            
            try {
                  // get date of clientupdate in UTC milliseconds
                  int year = Integer.parseInt( clientUpdate.substring(0,4) );
                  int month = Integer.parseInt( clientUpdate.substring(5,7) );
                  int day = Integer.parseInt( clientUpdate.substring(8,10) );
                  int hour = Integer.parseInt( clientUpdate.substring(11,13) );
                  int minute = Integer.parseInt( clientUpdate.substring(14,16) );
                  int second = Integer.parseInt( clientUpdate.substring(17,19) );
                  java.util.GregorianCalendar cal = new java.util.GregorianCalendar();
                  cal.set(year, month, day, hour, minute, second );
                  long nClientUpdate = cal.getTimeInMillis();

                  // get date of dbupdate in UTC milliseconds
                  year = Integer.parseInt( dbUpdate.substring(0,4) );
                  month = Integer.parseInt( dbUpdate.substring(5,7) );
                  day = Integer.parseInt( dbUpdate.substring(8,10) );
                  hour = Integer.parseInt( dbUpdate.substring(11,13) );
                  minute = Integer.parseInt( dbUpdate.substring(14,16) );
                  second = Integer.parseInt( dbUpdate.substring(17,19) );
                  cal.set(year, month, day, hour, minute, second );
                  long nDBUpdate = cal.getTimeInMillis();

                  if ( nClientUpdate >= nDBUpdate ) {
                        
                        isUpToDate = true;
                        System.out.println( "green");
                  
                  }else{
                        System.out.println( "red when: " + nClientUpdate +" < " + nDBUpdate );
                  }

            } catch(Exception ignored) {

            }


But the output is
red when: 1096619420596 < 1096660445596

I believe, i should get the output of green. B'coz my client update date is greater than dbupdate date.

How this strange behaviour??

Regards
aks
0
Comment
Question by:aks143
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
6 Comments
 
LVL 92

Expert Comment

by:objects
ID: 11950375
its less than isn't it
0
 
LVL 11

Expert Comment

by:sompol_kiatkamolchai
ID: 11950382
Month start from 0
0
 
LVL 11

Expert Comment

by:sompol_kiatkamolchai
ID: 11950384
cal.set(year, month, day, hour, minute, second );

should be

cal.set(year, month-1, day, hour, minute, second );
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 11

Accepted Solution

by:
sompol_kiatkamolchai earned 50 total points
ID: 11950395
from your code and data

String clientUpdate="2004-09-01 10:30:20"; --> This would be 2004-10-01 10:30:20
String dbUpdate = "2004-08-31 21:54:05"; --> This would be 2004-09-31 21:54:05 --> 2004-10-01 21:54:05




0
 
LVL 92

Expert Comment

by:objects
ID: 11950413
much easier though to use SimpleDateFormat to do your parsing
0
 

Author Comment

by:aks143
ID: 11950430
hii sompol,

thanks for it. I really overlooked it.

Regards,
aks
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

After hours on line I found a solution which pointed to the inherited Active Directory permissions . You have to give/allow permissions to the "Exchange trusted subsystem" for the user in the Active Directory...
Check out this step-by-step guide for asking an anonymous question on Experts Exchange.
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

734 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question