Solved

Getting Microseconds from Date

Posted on 2006-06-14
16
750 Views
Last Modified: 2008-01-09
Hi, we hold timestamps in our datavase in the following format: 2004-02-13:10:28:45.530374, trouble is that when we try to use  simpleDateFormat with the format yyyy-MM-dd hh:mm:ss.SSSSSS it doesnt work since it only goes upto milliseconds not microseconds.

Is there a way I can get the microseconds?
0
Comment
Question by:Chriseybaby
  • 4
  • 3
  • 2
  • +3
16 Comments
 
LVL 86

Expert Comment

by:CEHJ
Comment Utility
Microseconds are not supported in Java dates
0
 
LVL 14

Expert Comment

by:StillUnAware
Comment Utility
That's a good one, 0 minutes in answering a question :)
0
 
LVL 30

Expert Comment

by:mayankeagle
Comment Utility
The best I know is System.nanoTime () ; but that's nanoseconds.... the Date class does not support micro-seconds.
0
 
LVL 92

Expert Comment

by:objects
Comment Utility
0
 
LVL 4

Accepted Solution

by:
Yagantappa earned 250 total points
Comment Utility
You can make use of java.sql.Timestamp.
0
 

Author Comment

by:Chriseybaby
Comment Utility
Thanks for your help, looks like its going to have to be the timestamp, very annoying tho...
0
 
LVL 86

Expert Comment

by:CEHJ
Comment Utility
>>looks like its going to have to be the timestamp

That won't work either. Timestamp only supports milliseconds
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 30

Expert Comment

by:mayankeagle
Comment Utility
TimeStamp has a method called getNanos () but that wouldn't get the microsecond component.
0
 
LVL 14

Expert Comment

by:StillUnAware
Comment Utility
What are You talking about, not a single OS internally can count the time so exactly, I guess the shortest period of time which can be accessed is milisecond.
0
 
LVL 30

Expert Comment

by:mayankeagle
Comment Utility
Well I haven't used the getNanos () method of TimeStamp but probably that is what Yagantappa meant. In any case, like I said - it will not solve the problem because whether it gets the nanoseconds or not, it cannot get the microseconds. System.nanoTime () says "Returns the current value of the most precise available system timer, in nanoseconds".
0
 
LVL 4

Expert Comment

by:Yagantappa
Comment Utility
Not all databases support micro seconds. Oracle 10g support micro seconds. I tried the following program and it worked fine

Table in Oracle database
CREATE TABLE TEST_TIMESTAMP (
    T1      TIMESTAMP(6) NULL
    )
GO

Here is the test java code and its output

        Timestamp ts = new Timestamp(106, 06, 10, 10, 10, 10, 213286789);
        System.out.println("ts = " + ts);
        Class.forName ("oracle.jdbc.driver.OracleDriver");
        Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@xxx.xxx.xxx.xxx:xxxx:xxxX", "xxxxxx", "xxxxxx");
        Statement stmt = conn.createStatement();
        PreparedStatement p = conn.prepareStatement("update test_timestamp set t1 = ?");
        p.setTimestamp(1, ts);
        p.execute();
        ResultSet rs = stmt.executeQuery("select * from test_timestamp");
        while (rs.next())
        {
            System.out.println("column 1 = " + rs.getTimestamp(1));
        }

Output
--------
ts = 2006-07-10 10:10:10.213286789
column 1 = 2006-07-10 10:10:10.213287
column 1 = 2006-07-10 10:10:10.213287
column 1 = 2006-07-10 10:10:10.213287
column 1 = 2006-07-10 10:10:10.213287
column 1 = 2006-07-10 10:10:10.213287
0
 

Author Comment

by:Chriseybaby
Comment Utility
I havent tried using it yet, just hoped it would work.

The problem is, after I get the data from the data base I lose the last little bit of the timestamp. Therefore when I try to compare the 2 they are different. I could use a like query but would prefer to find a solution.

Maybe if I save it as a string I might be able to get around it...
0
 
LVL 86

Expert Comment

by:CEHJ
Comment Utility
>>I tried the following program and it worked fine

That's all OK but Chriseybaby's question specifies that s/he is using it in conjunction with Date. That's not possible, as Date only supports ms
0
 
LVL 30

Expert Comment

by:mayankeagle
Comment Utility
>> I havent tried using it yet, just hoped it would work.

You shouldn't close the question until you've confirmed that the answer is correct :) many people will have many suggestions and you can't say which one is going to work until you try them. Anyway, if this one does, its great :)
0
 
LVL 92

Expert Comment

by:objects
Comment Utility
Timestamp should work fine.
If the column in the database is a timestamp that supports the accuracy you need, then use getTimestamp() to retrieve it.
If its stored as a string then split the string (d.split("\\.")) when you extract it and parse the regular date/time (2004-02-13:10:28:45) with SDF and store it in a Timestamp, and parse the rest (530374) as an int and set the nanoseconds on your parsed Timestamp using setNanos() method.
0

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

Are you developing a Java application and want to create Excel Spreadsheets? You have come to the right place, this article will describe how you can create Excel Spreadsheets from a Java Application. For the purposes of this article, I will be u…
Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
Viewers learn about the scanner class in this video and are introduced to receiving user input for their programs. Additionally, objects, conditional statements, and loops are used to help reinforce the concepts. Introduce Scanner class: Importing…
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.

763 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

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now