Java time zones

Hello,
I was trying to get the time and timezone information in windows using the below code .The timezone set in windows was San Juan (Puerto Rico)
          long currentTime = System.currentTimeMillis();
          Time time = new Time(currentTime);
          GregorianCalendar cal = new GregorianCalendar();
          TimeZone zone = cal.getTimeZone();
System.out.println("offset value ##"+zone.getDisplayName());
System.out.println(" current time ::"+time.toString());
I was surprised to see a different time and timezone than the one displayed on my workstation.Would appreciate if somebody tell me what's wrong with the approach ?
-thanks

jopensource wrote:
Expected
timezone = America/Puerto_Rico
time=11:30 AM
Actuals
timezone = America/Caracas
time=11:00 AMI was not expecting you to say that.
Beats me. Of the various things I was considering that was not one of them.
I don't know.
This is just a guess, but you could check and see what the default locale is
java.util.Locale.getDefault().toString() perhaps it is wrong.
I've seen some stuff on the internet that implies that there is a bug in the runtime but I don't know how accurate those claims are.
good luck ,
sorry I was not able to help.
Edited by: johndjr on May 7, 2010 4:33 PM

Similar Messages

  • Look-up java time zone based on location?

    I have a test app where I can assign a java timezone and return time info - However, I don't see a way to look-up a java time zone based on location (combination of city/province/state/country).
    Is this possible?

    Has any one found a way to lookup a timezone based on a city/region in the world? So one could be able to type any city and state/province and country combination and get the corresponding timezone for that region. Is there a place where one can buy this data?
    Thank you

  • Java time zone parameter has no affect.

    I am attempting to set the timezone on a single stack Java instance to match the time zone settings on our ERP EHP6 system. I set the parameter
    -Dusertimezone=CST and GMT-5 using the configuration manager, save the change and restart the JAVA stack.  Each time I restart the system I get the attached error in the default trace log and when I check system info page the timezone still shows as GMT. What is the proper abbreviation to use for US Central Time Zone.
    OS is Windows 2008 R2 with the timezone correctly set. The DB is Oracle 11.2.0.4 and SAP is netweaver 7.0 EHP1.
    Thank You in Advance
    Troy Sorbet
    The error is listed in the attached file, sorry I can't get text to paste into the note.
    This is the banner for the error message
    "The specified time zone is not found in SchedulerTime config class"

    See SAP KBA 1867012 for a list of valid values. That said the error is returned from the KM Scheduler service, meaning it isn't global. I assume your instance starts but only the KM Scheduler service doesn't start. If that's the case what is the SP level of your NW701 system? Applying SAP note 1675803 might solve your problem.

  • I need help with java Time Zone Updater for Venezuela Time Zone

    Hi,
    I've run the latest Time Zone Updater (1.3.5) on JRE 1.4.2. It is supposed to support the time zone changes for Venezuela. The problem is that when I set my Windows time zone and run java.util.TimeZone.getDefault() it says that I am on GMT instead of GMT-04:30.
    Am I doing something wrong?
    Thanks in advance for your help.

    I have found the solution for cases in which you cannot update your JRE to anything further than 1.5. You will have to create an extra entry in the Java tzmappings file as follows:
    Venezuela Standard Time:90,90::America/Caracas:After doing this, you will have to create a new String Value in your Windows registry for the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Venezuela Standard Time Key as follows:
    Name: MapID
    Value: 90,90
    Best regards.

  • How can I correct time zone information

    Yesterday  Europe/Moscow zone was changet from  GMT+4 to GMT+3
    I've managed to adjust ical4j.jar library replacing Moscow.ics by this very simple zone file
    BEGIN:VCALENDAR
    PRODID:-//Oracle//Calendar Server//EN
    VERSION:2.0
    BEGIN:VTIMEZONE
    TZID:Europe/Moscow
    X-LIC-LOCATION:Europe/Moscow
    BEGIN:STANDARD
    TZOFFSETFROM:+0300
    TZOFFSETTO:+0300
    TZNAME:MSK
    DTSTART:19700101T000000
    END:STANDARD
    END:VTIMEZONE
    END:VCALENDAR
    After init-config for both davserver and Convergence this jar file is deployed and I see It into
    /opt/glassfish3/glassfish/domains/domain1/applications/davserver/WEB-INF/lib/
    directory.
    Moreover I found modified zoneinfo file into
    opt/glassfish3/glassfish/domains/domain1/generated/jsp/davserver/loader_27469283/zoneinfo/Europe/Moscow.ics
    I see in the Convegence Options Time Zone Europe Moscow GMT+0300
    So far so good.
    Bad news when I export calendar via Convergence calendar interface  I see in  the head of ICS file the following time zone information
    BEGIN:VCALENDAR
    VERSION:2.0
    PRODID:-//Oracle Corporation/CS 7.0.4.15.0//EN
    BEGIN:VTIMEZONE
    TZID:Europe/Moscow
    X-LIC-LOCATION:Europe/Moscow
    BEGIN:STANDARD
    TZOFFSETFROM:+0400
    TZOFFSETTO:+0400
    TZNAME:MSK
    DTSTART:19700101T000000
    END:STANDARD
    END:VTIMEZONE
    BEGIN:VEVENT
    The offset +0400 is absolutely wrong!
    Since I see in convergence all events shifted by one hour back respect to lightning data.
    I found a lot of information about how to add time zone alias, but have no info about correction existing time zone.
    Any comments are welcome.
    Thank you, Monk.
    P.S.
    Operating system time zone information is right.
    Java time zone is updated too.

    Yes I know about time zone information into VEVENT Object.
    Can You provide me URL where I can download plugin you are talking about?
    Plugin can be for Firefox or Chrome.
    Till now I can only use export calendar button of Convergence Calendar interface.
    Here you can find two event
    th-17 and th-19 created by Lightning
    th-17 - started 17-00
    th-19 - started 19-00
    According to the Convergence them start at 16-00 and 18-00 respectively.
    By the way .Lightning show them correct but fire alarm one hour earlier.
    15-45
    17-45
    Seams that Lightning took wrong time zone information from the server with +4 offset.
    BEGIN:VCALENDAR
    VERSION:2.0
    PRODID:-//Oracle Corporation/CS 7.0.4.15.0//EN
    BEGIN:VTIMEZONE
    TZID:Europe/Moscow
    X-LIC-LOCATION:Europe/Moscow
    BEGIN:STANDARD
    TZOFFSETFROM:+0400
    TZOFFSETTO:+0400
    TZNAME:MSK
    DTSTART:19700101T000000
    END:STANDARD
    END:VTIMEZONE
    BEGIN:VEVENT
    UID:e22635db-e82a-4422-be31-b2f0adb00c21
    DTSTAMP:20141027T125056Z
    SUMMARY:th-17
    DTSTART;TZID=Europe/Moscow:20141027T170000
    DTEND;TZID=Europe/Moscow:20141027T180000
    CREATED:20141027T122644Z
    LAST-MODIFIED:20141027T125056Z
    TRANSP:OPAQUE
    X-MOZ-GENERATION:2
    X-MOZ-LASTACK:20141027T124511Z
    BEGIN:VALARM
    DESCRIPTION:Default Mozilla Description
    ACTION:DISPLAY
    TRIGGER;VALUE=DURATION:-PT15M
    END:VALARM
    END:VEVENT
    BEGIN:VEVENT
    UID:d0c3b01f-970b-4d5a-97cc-999f8a3e8e90
    DTSTAMP:20141027T144856Z
    SUMMARY:th-19
    DTSTART;TZID=Europe/Moscow:20141027T190000
    DTEND;TZID=Europe/Moscow:20141027T200000
    CREATED:20141027T124446Z
    LAST-MODIFIED:20141027T144856Z
    TRANSP:OPAQUE
    X-MOZ-GENERATION:1
    X-MOZ-LASTACK:20141027T144856Z
    X-MOZ-SNOOZE-TIME:20141027T145356Z
    BEGIN:VALARM
    DESCRIPTION:Default Mozilla Description
    ACTION:DISPLAY
    TRIGGER;VALUE=DURATION:-PT15M
    END:VALARM
    END:VEVENT
    X-NSCP-WCAP-ERRNO:0
    END:VCALENDAR

  • Change the time zone in Java System only

    Hi there,
    Does anyone knows where to change the time zone in Java system only? I know in ABAP they have t-code: STZAC? where do I change in Java? Configtool or visual admin? what is the service name or parameter for this?
    Thanks
    Kumar

    hi Kumar,
    You can change the timezone of the JVMs using the -Duser.timezone
    parameter,  add -Duser.timezone=<timezone> to all dispatcher and
    server processes in your systems, using the configtool           
    1) open config tool                                              
    2) select yes                                                    
    3) select "cluster-data->instanceXXX->serverXXX/Dispatcher"      
    4) in "Java parameters" add new line "-Duser.timezone=<timezone>"
    5) click "Apply changes"                                         
    6) restart your instance
    Let me know how is the result
    Regards

  • TimeStamp with time zone vs java Date

    In the developer's preview release notes, I read about the extended support on Oracle TimeStamp. We are currently planning to migrate current TIMESTAMP columns to TIMESTAMP WITH TIMEZONE to keep the user time zone with the typed date. Here is my question: Which time zone is persisted using a direct to field mapping between a java.util.Date and a TIMESTAMPTZ column? As the java.util.Date contains no time zone (in opposition to java.util.Calendar), does TopLink uses the JVM time zone? WHat is the best to data structure to keep date/time & time zone in our entities? Thanks, Yannick.

    I believe it would be the local timezone of the session. If you map a Date to the TIMESTAMP TZ then the SQL written out will not include a TZ value.
    Typically if you wish to map to a TIMESTAMPTZ field you would want to use an object in the model that can hold both the Timestamp and TZ values. This is most commonly a Calendar.
    Doug

  • Does anyone know how I can update the Java 1.3.1 Time Zone Definitions?

    I have an Application that was packaged with Java Runtime 1.3.1 before the DST Changes and need to update the time zone definitions to correct for the difference in the old DST dates and the new DST dates for Central Time Zone - US.

    I don't get it. Why were DST incorporated into the 'Application'? Normally a Java app. would get them from the JRE (AFAIU), and if the '1.3.1 built' app. is run using Java 1.5 or 1.6, it will pick up the updated DST.

  • Reg Custom Time Zone in java

    Hi ,
    Have configured the custom Time Zone (SAST) in the Linux box.
    The sh clock of the Linux box gives the custom Time Zone (SAST).
    Whereas the java application gives the date in GMT Time Zone.
    Noticed from the java docs that, if the custom time zone string (SAST) doesn't match the syntax ( like GMT +Value or GMT-Value) , "GMT" is used.
    Even if we create SimpleTimeZone with offset from GMT, it displays the date in “GMT” format. It won’t display the custom Time Zone.
    Could anybody please suggest me a way to support Custom Time Zone in java?
    (i.e.) The java application should give the date in custom Time Zone (SAST) instead of GMT format.
    FYI : Java version : "1.5.0_17"
    ================== Snippet from java docs====================================
    The format is locale independent and digits must be taken from the Basic Latin block of the Unicode standard. No daylight saving time transition schedule can be specified with a custom time zone ID. If the specified string doesn't match the syntax, "GMT" is used.
    Java doc URL : http://java.sun.com/j2se/1.4.2/docs/api/java/util/TimeZone.html

    hi Kumar,
    You can change the timezone of the JVMs using the -Duser.timezone
    parameter,  add -Duser.timezone=<timezone> to all dispatcher and
    server processes in your systems, using the configtool           
    1) open config tool                                              
    2) select yes                                                    
    3) select "cluster-data->instanceXXX->serverXXX/Dispatcher"      
    4) in "Java parameters" add new line "-Duser.timezone=<timezone>"
    5) click "Apply changes"                                         
    6) restart your instance
    Let me know how is the result
    Regards

  • Time Zone Abbreviations Internationalized in Java?

    I'm trying to fgure out if anyone knows if Java provides time zone abbreviations (specifically) internationalized. We have a third party library that we are using to retrieve the abbreviated time zone display for the current locale (France). We get the correct time zone returned, "CEST" (Central European Summer Time), but as I understand it "CEST" is the english translation of that time zone and the French version is "HAEC" which stands for "heure d'été d'Europe centrale".
    After debugging through that library it appears its just getting the Time Zone display from Java's rt.jar. After looking inside there at the TimeZoneNames_fr.java this is what I am seeing (keep in mind some of this is speculation)
    String[] arrayOfString15 = { "Heure d'Europe centrale", "CET", "Heure d'été d'Europe centrale", "CEST" };
    To me this looks like Java can return the internationalized version of the full time zone name, but we are going to get the english translation of the abbreviation.
    Would anyone be able to confirm this for me?
    Here is a test I mocked up:
    TimeZone tz = TimeZone.getTimeZone("Europe/Paris");
    System.out.println("Time Zone (Long English): " + tz.getDisplayName(true, 1));
    System.out.println("Time Zone (Short English): " + tz.getDisplayName(true, 0)); // Actual Code in third party library
    System.out.println("Time Zone (Long French): " + tz.getDisplayName(true, 1, Locale.FRANCE));
    System.out.println("Time Zone (Short French): " + tz.getDisplayName(true, 0, Locale.FRANCE));
    and the results:
    Time Zone (Long English): Central European Summer Time
    Time Zone (Short English): CEST
    Time Zone (Long French): Heure d'été d'Europe centrale
    Time Zone (Short French): CEST
    I ran also ran the same code snippet using the ICU4J 4.6.1 locale SPI provider and here's the output.
    Time Zone (Long English): Central European Summer Time
    Time Zone (Short English): CEST
    Time Zone (Long French): heure avancée d’Europe centrale
    Time Zone (Short French): HAEC

    Double post: http://forum.java.sun.com/post!reply.jspa?messageID=3826011

  • Java.util.Date time zone

    Hi
    We have a very interesting problem. We are running a Java app server (ATG Dynamo) and it has decided to start working in PST even though the Unix server is configured to EST (i.e. if you run �System.our.println(new java.util.Date())� you get the time in PST. If you type date into the shell prompt you get EST). Incidentally this only happens on production. On all the other machines everything shows up as EST.
    So my question is: How does Java decide what time zone it is in?
    I always figured it would take that information from the System. Right?
    Thank
    Zeev Neumeier

    It depends on your JVM and version.
    Sun JVM versions before 1.1.8 had a bug which caused it to always use the zone in the JVM which was PST.
    The Sun JVM uses system information to determine it. What exactly it does requires code spelunking. You can try getGMTOffsetID(),Java_java_util_TimeZone_getSystemGMTOffsetID() in C files and TimeZone.getDefault() in java. It is certainly possible that an ENV var is doing it.
    If all else fails then you can explicitly set it on the commad line...
    java -Duser.timezone=EST MyClass

  • Get date from Oracle when local time zone is different from Oracle time zon

    Hi!
    Local machine time zone= +2
    Oracle time zone= +1
    I set date to Oracle using java.sql.Date.
    From application I save date at 00:30 clock and send e.g. 28.06.2002, but in Oracle date is save as 27.06.2002 01:00 (hour=01 , I suppose that is because java.sql.Date hasn't time the Oracle set it time = time zone=+1) And when I get date from Oracle I get incorrect date. In SQL I don't use date masks. Maybe solution is to use java.sql.Timestamp object (when save date to Oracle) instead of java.sql.Date?
    But if I save date at e.g. 01:00 clock and send e.g. 28:06.2002 in Oracle, date is save as 28.06.2002 01:00 and when I read from Oracle I get correct date.
    Thank you.

    Hi!
    Local machine time zone= +2
    Oracle time zone= +1
    I set date to Oracle using java.sql.Date.
    From application I save date at 00:30 clock and send
    e.g. 28.06.2002, but in Oracle date is save as
    27.06.2002 01:00 (hour=01 , I suppose that is because
    java.sql.Date hasn't time the Oracle set it time =
    time zone=+1) Presumably you are using setTimestamp() to store the value. If you are explicitly using a varchar (string) then you will have to correct the timezone your self.
    And when I get date from Oracle I get
    incorrect date. In SQL I don't use date masks. Maybe
    solution is to use java.sql.Timestamp object (when
    save date to Oracle) instead of java.sql.Date?The method setDate/getDate store a 'date' which is not the same as a 'date and time' for which setTimestamp/getTimestamp are used.
    But if I save date at e.g. 01:00 clock and send e.g.
    28:06.2002 in Oracle, date is save as 28.06.2002
    01:00 and when I read from Oracle I get correct date.
    Thank you.

  • Problem in Date time Zone parsing

    Hi Guys,
    I want format of String of time whic have time zone also. But how can i validate weather my date is correct or not .
    This is i am doing because of Auto grow up problem in SimpleDateFormat.
    For example : If i am parsing "2.00 AM GMT" as per mask "h:mm a z" should be correct if after format output is "2.00 AM GMT"
    but if i am trying "15.00 AM GMT" as per mask it should be invalidated because after format it will return "3.00 PM GMT" this is also working as per my expectaion
    But When i changed the Timzoe mask from GMT to PDT it get again fails
    suggesiotn for resolving this isse willl be appreciated
    // TODO Auto-generated method stub
    import java.util.Date;
    import java.util.TimeZone;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.SimpleTimeZone;
    public class checkDates {
         public static String getTimeZoneId(String getTimeZone) {
              // Modifies the default time zone, disables the Daylight Saving Time.
              TimeZone dtz = (TimeZone) TimeZone.getDefault();          
              int l_rawOffset = dtz.getRawOffset();
              String l_id =TimeZone.getTimeZone(getTimeZone).getID();          
              SimpleTimeZone l_simpleTimeZone = new SimpleTimeZone(l_rawOffset, l_id, 0, 0, 0, 0, 0, 0, 0, 0);
              TimeZone.setDefault(l_simpleTimeZone);
              return TimeZone.getTimeZone(getTimeZone).getID();
         public static void main(String[] args) {
              // String aMask = "MM/dd/yyyy";
              String aMask = "hh:mm a z";
              String newEffDate = "15:00 AM GMT+03:00";
              String timeZoneId ="";
              SimpleDateFormat mydf = new SimpleDateFormat(aMask);
              if(aMask.indexOf("z")>0){
                   if(newEffDate.length()>aMask.indexOf("z")){
                        timeZoneId = getTimeZoneId(newEffDate.substring(aMask.indexOf("z")));
                        System.out.println(newEffDate + " Time Zone id = ["+timeZoneId+ "]");
                        mydf.setTimeZone(TimeZone.getTimeZone(timeZoneId));
              Date date = null;
    /*          System.out.println(System.getProperty("user.timezone"));
              System.out.println(TimeZone.getDefault().toString());     
              System.out.println(mydf.getTimeZone().toString());     */          
              try {
                   date = mydf.parse(newEffDate);
                   System.out.println("\n\n\nDate is working -\nInput " + newEffDate);
                   System.out.println("Date is working -\nOUTPUT " + mydf.format(date));
                   if (!mydf.format(date).equals(newEffDate)) {
                        throw new ParseException("[" + newEffDate + "] Unparseable date: \"newEffDate\" " + "[" + mydf.format(date) + "] [" + aMask + "]", aMask.indexOf("z"));
              } catch (ParseException pe) {
                   pe.printStackTrace();
                   System.out.println(pe.getMessage() + "---" + pe.getErrorOffset());
    }

    There's a setLenient method you can use.

  • Wrong interpretation of OS time zone

    This problem exists for Oracle 9.0.1.1.0 on Solaris 8.
    The same Java method (using new Date() to get the current datetime) that shows correct datetime when called directly from Solaris console, produces wrong datetime when called as Oracle Java stored procedure.
    This problem is visible for Middle/Central European Time zone which is GMT+1.
    When timezone is set to MET in the OS, then the result of new Date() is datetime appropriate for GMT+03:30 not GMT+01:00.
    When timezone is set to CET in the OS (which on Solaris is equivalent to MET), then the call to new Date() gives datetime appropriate for the GMT zone.
    I can see that the timezone name used in Solaris is (wrongly) interpreted by the JVM as if it were set in Java, because in Java MET represents time zone in Iran! not in Middle/Central Europe. The call to TimeZone.getTimeZone("MET").getDisplayName() results in "Iran Time".
    CET does not exist in Java (they use ECT instead) and is thus by default treated as GMT.
    It is not reported in the list of bug fixes for Oracle 9i Release 2 so I assume the problem is still there.
    Marek Rudnicki

    Hello;
    Fix the time on the OS and restart the database and you should be done. Simple as that. So to answer your question Right.
    Best Regards
    mseberg

  • Conversion mapping is losing time zone data during daylight saving time

    We have a problem with conversion of Calendars to timestamp with timezone for the last hour of Daylight Saving Time (e.g. 01:00 EDT - 01:59 EDT) where it is being interpreted as Standard Time which is in reality 60 minutes later.
    We've written a JUnit test case that runs directly against TopLink to avoid any issues with WAS and its connection pooling.
    The Calendar theDateTime comes from an object called TimeEntry which is mapped to a TIMESTAMP WITH TIMEZONE field using conversion mapping with Data Type TIMESTAMPTZ (oracle.sql) and Attribute Type Calendar (java.util).
    We are using:
    Oracle TopLink - 10g Release 3 (10.1.3.0.0) (Build Patch for Bugs 5145690 and 5156075)
    Oracle9i Enterprise Edition Release 9.2.0.7.0 - 64bit Production
    Oracle JDBC driver Version: 10.2.0.1.0
    platform=>Oracle9Platform
    Execute this Java:
    SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm z");
    TimeZone tzEasternRegion = TimeZone.getTimeZone("US/Eastern");
    Calendar theDateTime = Calendar.getInstance(tzEasternRegion);
    theDateTime.setTime(format.parse("10/29/2006 01:00 EDT"));
    Persist to the database and execute this SQL:
    SELECT the_date_time, EXTRACT(TIMEZONE_REGION FROM the_date_time), EXTRACT(TIMEZONE_ABBR FROM the_date_time), EXTRACT(TIMEZONE_HOUR FROM the_date_time)
    FROM time_table WHERE time_table_id=1
    This provides the following results:
    THE_DATE_TIME EXTRACT(TIMEZONE_REGION FROM the_date_time) EXTRACT(TIMEZONE_ABBR FROM the_date_time) EXTRACT(TIMEZONE_HOUR FROM the_date_time)
    29-OCT-06 01.00.00.000000 AM US/EASTERN US/Eastern EST -5
    The wrong time zone is in the database. It should be EDT -4. Let's test the SQL that should be generated by TopLink. It should look like the following.
    Execute this SQL:
    UPDATE time_table SET the_date_time = TO_TIMESTAMP_TZ('10/29/2006 01:00 US/Eastern','mm/dd/yyyy HH24:MI TZR') WHERE (time_table_id=1)
    SELECT the_date_time, EXTRACT(TIMEZONE_REGION FROM the_date_time), EXTRACT(TIMEZONE_ABBR FROM the_date_time), EXTRACT(TIMEZONE_HOUR FROM the_date_time)
    FROM time_table WHERE time_table_id=1
    This provides the same results:
    THE_DATE_TIME EXTRACT(TIMEZONE_REGION FROM the_date_time) EXTRACT(TIMEZONE_ABBR FROM the_date_time) EXTRACT(TIMEZONE_HOUR FROM the_date_time)
    29-OCT-06 01.00.00.000000 AM US/EASTERN US/Eastern EST -5
    Now, execute this SQL:
    UPDATE time_table SET the_date_time = TO_TIMESTAMP_TZ('10/29/2006 01:00 EDT US/Eastern','mm/dd/yyyy HH24:MI TZD TZR') WHERE (time_table_id=1)
    SELECT the_date_time, EXTRACT(TIMEZONE_REGION FROM the_date_time), EXTRACT(TIMEZONE_ABBR FROM the_date_time), EXTRACT(TIMEZONE_HOUR FROM the_date_time)
    FROM time_table WHERE time_table_id=1
    This provides better results:
    THE_DATE_TIME EXTRACT(TIMEZONE_REGION FROM the_date_time) EXTRACT(TIMEZONE_ABBR FROM the_date_time) EXTRACT(TIMEZONE_HOUR FROM the_date_time)
    29-OCT-06 01.00.00.000000 AM US/EASTERN US/Eastern EDT -4
    The correct time zone is now in the database. Let's test reading this with the following Java:
    System.out.println("cal= " + theDateTime);
    System.out.println("date= " + theDateTime.getTime());
    System.out.println("millis= " + theDateTime.getTimeInMillis());
    System.out.println("zone= " + theDateTime.getTimeZone());
    This provides the following results:
    cal= java.util.GregorianCalendar[...]
    date= Sun Oct 29 01:00:00 EST 2006
    millis= 1162101600000
    zone= sun.util.calendar.ZoneInfo[id="US/Eastern",...]
    The TimeZone object is correct since we are using the US/Eastern regional time zone, but the millis are wrong which makes the time EST instead of EDT. The millis should be 1162098000000.
    The conversion from java.util.Calendar to TIMESTAMPTZ loses the actual offset when setting to a regional time zone. It can maintain this info by specifying it explicitly.
    The conversion from TIMSTAMPTZ to java.util.Calendar also loses the actual offset even if the correct offset is in the database.
    Has anyone else encountered this conversion problem? It appears to be a conversion problem in both directions. I know that the Calendar is lenient by default and will assume Standard Time if time is entered during the repeated 1 o'clock hour at the end of Daylight Saving Time, but the Calendars we are using are explicit in their time, so this would be classified as data corruption.
    Nik

    Opened an SR. Looks like there is a problem with conversion either in TopLink or in JDBC.

Maybe you are looking for