Re: How to insert "date" as timestamp - Mailing list pgsql-jdbc

From Kevin Grittner
Subject Re: How to insert "date" as timestamp
Date
Msg-id s34e27b0.054@gwmta.wicourts.gov
Whole thread Raw
In response to How to insert "date" as timestamp  (Aydın Toprak <aydin.toprak@intengo.com>)
List pgsql-jdbc
Be careful about that with java.sql.Date.
To demonstrate the problem:

public class TestDate
{
    public static void main(String[] args)
        throws InterruptedException
    {
        java.util.Date utilDate = new java.util.Date(System.currentTimeMillis());
        java.sql.Date sqlDate1 = new java.sql.Date(utilDate.getTime());
        Thread.sleep(20L);
        utilDate = new java.util.Date(System.currentTimeMillis());
        java.sql.Date sqlDate2 = new java.sql.Date(utilDate.getTime());
        System.out.println(sqlDate1 + " equals " + sqlDate2 + " ?  " + sqlDate1.equals(sqlDate2));

        java.sql.Timestamp ts = new java.sql.Timestamp(sqlDate1.getTime());
        System.out.println(ts);
        ts = new java.sql.Timestamp(sqlDate2.getTime());
        System.out.println(ts);
    }
}

I get the following results:

2005-10-13 equals 2005-10-13 ?  false
2005-10-13 09:17:40.431
2005-10-13 09:17:40.461

Unfortunately, the burden is on the application programmer
to provide a ms value which is at midnight for the default
time zone for the JVM when using that constructor. I can't
understand that as a design choice, but that's the current
reality.

-Kevin


>>> Roland Walter <rwa@mosaic-ag.com> 10/13/05 4:10 AM >>>

The conversion works as the following, i. e.:

java.util.Date date = new java.util.Date(System.currentTimeMillis());
java.sql.Timestamp timestamp = new java.sql.Timestamp(date.getTime());

It is the same for the conversion to java.sql.Date.


pgsql-jdbc by date:

Previous
From: "Kevin Grittner"
Date:
Subject: Re: How to insert "date" as timestamp
Next
From: Roland Walter
Date:
Subject: Re: How to insert "date" as timestamp