Time in milliseconds problem

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
aks143Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
sompol_kiatkamolchaiConnect With a Mentor Commented:
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
 
objectsCommented:
its less than isn't it
0
 
sompol_kiatkamolchaiCommented:
Month start from 0
0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
sompol_kiatkamolchaiCommented:
cal.set(year, month, day, hour, minute, second );

should be

cal.set(year, month-1, day, hour, minute, second );
0
 
objectsCommented:
much easier though to use SimpleDateFormat to do your parsing
0
 
aks143Author Commented:
hii sompol,

thanks for it. I really overlooked it.

Regards,
aks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.