Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Time in milliseconds problem

Posted on 2004-09-01
6
Medium Priority
?
211 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
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 11

Accepted Solution

by:
sompol_kiatkamolchai earned 200 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

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Question has a verified solution.

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

A while back, I ran into a situation where I was trying to use the calculated columns feature in SharePoint 2013 to do some simple math using values in two lists. Between certain data types not being accessible, and also with trying to make a one to…
Without even knowing it, most of us are using web applications on a daily basis.  In fact, Gmail and Yahoo email, Twitter, Facebook, and eBay are used by most of us daily—and they are web applications. We generally confuse these web applications to…
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…
In this video, Percona Solutions Engineer Barrett Chambers discusses some of the basic syntax differences between MySQL and MongoDB. To learn more check out our webinar on MongoDB administration for MySQL DBA: https://www.percona.com/resources/we…

661 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