Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4065244

TimeZone NightMare.... The movie...

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • P3
    • None
    • 1.1.1, 1.1.3
    • core-libs
    • None
    • sparc
    • solaris_2.5.1

    Description



      Name: rlT66838 Date: 07/16/97


      HI,

      We are currently coding an application using timezone
      and I have some problem with the time zone return by java.util.Date

      On Solarix 2.5.1, if I do a


      import java.util.Date;

      class tt
      {
      public static void main(String args[])
      throws java.text.ParseException
      {
      Date d;

      d = new Date();

      double tz;
      tz = d.getTimezoneOffset();

      System.out.println(tz+" mins");
      System.out.println((tz/60.0)+" hours\n");

      System.out.println(d.toString());
      System.out.println(d.toGMTString());
      }
      }


      ----------------------------------
      If I run is from Linkoping, Sweden: (jdk1.1.1 same result for 1.1.2)

      Sweden <262> r
      -210.0 mins
      -3.5 hours
      Wed Jul 16 10:34:56 GMT+03:30 1997
      16 Jul 1997 08:04:56 GMT

      Sweden <261> date ; date -u
      Wed Jul 16 09:04:54 MET DST 1997
      Wed Jul 16 07:04:54 GMT 1997

      ----------------------------------
      And now if I run it from Montreal, Canada: (jdk1.1.3)

      [Montreal 3:03] <75> r
      240.0 mins
      4.0 hours
      Wed Jul 16 00:03:30 PDT 1997
      16 Jul 1997 08:03:30 GMT

      [Montreal 3:03] <75> date;date -u
      Wed Jul 16 03:03:39 EDT 1997
      Wed Jul 16 07:03:39 GMT 1997

      ----------------------------------

      And againg, from Melbourn, Australia (jdk 1.1.?)
      Australia> java tt
      240.0mins
      4.0 hours
      Wed Jul 16 00:05:35 PDT 1997
      16 Jul 1997 08:05:35 GMT

      Australia > date;date -u
      Wed Jul 16 17:05:52 EST 1997
      Wed Jul 16 07:05:52 GMT 1997
      ----------------------------------

      This is really a nightmare, I don't know what is the problem!
      Am I using the java in a wrong way?
      Is there something I should set before running the program?

      This is REALLY IMPORTANT FOR US. We have to deliver for testing
      an application at the end of July!


      ======================================================================

      roger.lewis@Eng 1997-07-28

      The time returned from calendar and date is not Middle European Time (MET) but always PDT that is not one of the defined tome zones in TimeZone

      I was no able to get the current time/date/timezone, but
      always ended up with the "PDT" timezone and my time (MET) -9 hours that
      match with the time in California.

      This is the sample code that I tried out to try to get the MET
      time:


      import java.text.SimpleDateFormat;
      import java.util.Date;
      import java.util.GregorianCalendar;
      import java.util.Calendar;
      import java.util.TimeZone;
      import java.util.SimpleTimeZone;
      import java.io.*;


      public class MyDate
      {
        
        public MyDate()
          {
            
          }
        
        public void printUsingDate()
          {
            String newName="Date : ";
            SimpleDateFormat formatter
      = new SimpleDateFormat ("yyyy:MM:dd:HH:mm:ss:z");
            Date currentTime_1 = new Date();
            String dateString = formatter.format(currentTime_1);
            newName=newName.concat(dateString);
            System.out.println("Using date: "+newName);
          }
        

        public void printUsingCalendar()
          {
            
            String newName="Calendar : ";
             SimpleDateFormat formatter
      = new SimpleDateFormat ("yyyy:MM:dd:HH:mm:ss:z");

            
            TimeZone tz=TimeZone.getDefault();
            
            GregorianCalendar cal=new GregorianCalendar(tz);
            
            Date currentTime_1 = cal.getTime();
            String dateString = formatter.format(currentTime_1);
            newName=newName.concat(dateString);
            System.out.println("Using calendar : "+newName);

          }

        public void printUsingSimpleTimeZone()
          {
            
            String newName="Calendar : ";
            SimpleDateFormat formatter
      = new SimpleDateFormat ("yyyy:MM:dd:HH:mm:ss:z");

            SimpleTimeZone tz=new SimpleTimeZone(-8,"MET");
            
            GregorianCalendar cal=new GregorianCalendar(tz);
            
            Date currentTime_1 = cal.getTime();
            String dateString = formatter.format(currentTime_1);
            newName=newName.concat(dateString);
            System.out.println("Using simple date zone: "+newName);

          }

        public void ids()
          {
            
            String[] ids;
            ids=TimeZone.getAvailableIDs();
            
            for (int i=0;i<ids.length;i++)
            {
      System.out.println(" Time zone: "+ids[i]);
            }
          }


        
        public static void main(String[] args)
          {
            System.out.println(" Date");
            MyDate date = new MyDate();
            date.ids();
            date.printUsingDate();
            date.printUsingCalendar();
            date.printUsingSimpleTimeZone();
            
        }
      }

      ============================================================================

      Attachments

        Issue Links

          Activity

            People

              ssenthilsunw Shanmugam Senthil (Inactive)
              rlewis Roger Lewis (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: