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

Calendar.getTimeInMillis() get wrong value on Linux using hungarian local

XMLWordPrintable

      FULL PRODUCT VERSION :
      java version "1.8.0_152-ea"
      Java(TM) SE Runtime Environment (build 1.8.0_152-ea-b05)
      Java HotSpot(TM) 64-Bit Server VM (build 25.152-b05, mixed mode)

      java version "1.8.0_131"
      Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
      Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Debian 8.8 64 bit
      CentOS 6.9 64 bit
      Windows 7 Home Premium SP1 64 bit
      Windows 2012 R2 64 bit


      EXTRA RELEVANT SYSTEM CONFIGURATION :
      Use hungarian local settings.

      A DESCRIPTION OF THE PROBLEM :
      This bug affects the 50s daylight saving dates.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      OS: Windows 7
      Java version: 1.8.0_131
      Locale: HU
      TimeZone: Central European Time
      DateTime: 1954.06.02 00:00:00
      TimeInMillis: -491792400000
      ACTUAL -
      OS: Linux
      Java version: 1.8.0_131
      Locale: HU
      TimeZone: Central European Time
      DateTime: 1954.06.02 00:00:00
      TimeInMillis: -491796000000

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      package hu.ct.test;

      import java.text.SimpleDateFormat;
      import java.util.Calendar;
      import java.util.Locale;

      public class Test {

      public static void main(String[] args) {

      Calendar calendar = Calendar.getInstance();
      calendar.set(Calendar.YEAR, 1956);
      calendar.set(Calendar.MONTH, Calendar.JULY);
      calendar.set(Calendar.DAY_OF_MONTH, 2);
      calendar.set(Calendar.HOUR_OF_DAY, 0);
      calendar.set(Calendar.MINUTE, 0);
      calendar.set(Calendar.SECOND, 0);
      calendar.set(Calendar.MILLISECOND, 0);

      System.out.println("OS: " + System.getProperty("os.name"));
      System.out.println("Java version: "
      + System.getProperty("java.version"));
      System.out.println("Locale: " + Locale.getDefault().getCountry());
      System.out.println("TimeZone: "
      + calendar.getTimeZone().getDisplayName());
      SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
      "yyyy.MM.dd HH:mm:ss");
      System.out.println("DateTime: "
      + simpleDateFormat.format(calendar.getTime()));
      System.out.println("TimeInMillis: " + calendar.getTimeInMillis());

      }

      }

      ---------- END SOURCE ----------

            naoto Naoto Sato
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: