JDK-8060006 : No Russian time zones mapping for Windows
  • Type: Enhancement
  • Component: core-libs
  • Sub-Component: java.util:i18n
  • Affected Version: 7u67,8,9
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows_7
  • CPU: x86_64
  • Submitted: 2014-10-09
  • Updated: 2015-06-04
  • Resolved: 2014-10-14
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 JDK 8 JDK 9
6u101Fixed 7u80Fixed 8u40Fixed 9 b36Fixed
Related Reports
Duplicate :  
Duplicate :  
Duplicate :  
Description
A DESCRIPTION OF THE REQUEST :
There is no timesones mapping for newly added Russian Timezones in JDK for Windows. New timezones key value in Windows registry (TimeZoneKeyName) should looks like "Russian Time Zone 1..11" after 26 october 2014. You can read about this here:
http://blogs.technet.com/b/dst2007/archive/2014/08/22/announcement-update-for-russian-time-zone-changes.aspx
But there is no record for this key in file %JAVA_HOME%/jre/lib/tzmappings.
JDK was patched with Java Time Zone Updater Tool tzupdater-1_4_7-2014g.zip


JUSTIFICATION :
Wrong time possible in java-applications after 26.oractober.2014

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Current java's timezone should be mapped to OS timesone.

ACTUAL -
For date 27.october.2014 and "Russian Timezone 3" selected in Windows result of test case is "timezoneAmerica/Bahia" but shoul be "Europe\Samara" 
 

---------- BEGIN SOURCE ----------
TimeZone tz = TimeZone.getTimeZone(java.util.TimeZone.getDefault().getID());
          StringBuilder timeZoneStr = new StringBuilder();
          timeZoneStr.append("Current timzone: ").append("( GMT ").append(tz.getRawOffset() / (60 * 60 * 1000)).append(" ) ").append(tz.getDisplayName());
          tzList.add(timeZoneStr.toString());
          System.out.println(timeZoneStr.toString());


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

CUSTOMER SUBMITTED WORKAROUND :
manual editing of the file  %JAVA_HOME%/jre/lib/tzmappings


Comments
verified on 9b36 pit (http://scaaa637.us.oracle.com//archive/2014/10/2014-10-16-223445.ssteuck.dev-pit)
20-10-2014

Needs to add the new time zones from KB2794119 and KB2998527 to java.base/windows/conf/tzmappings. Here's the fix. diff --git a/src/java.base/windows/conf/tzmappings b/src/java.base/windows/conf/tzmappings --- a/src/java.base/windows/conf/tzmappings +++ b/src/java.base/windows/conf/tzmappings @@ -193,5 +193,10 @@ Turkey Standard Time:926,926::Asia/Istanbul: Bahia Standard Time:927,927::America/Bahia: Libya Standard Time:928,928:LY:Africa/Tripoli: -Western Brazilian Standard Time:929,929:BR:America/Rio_Branco: -Armenian Standard Time:930,930:AM:Asia/Yerevan: +Belarus Standard Time:929,929:BY:Europe/Minsk: +Line Islands Standard Time:930,930::Pacific/Kiritimati: +Russia Time Zone 10:931,931::Asia/Srednekolymsk: +Russia Time Zone 11:932,932::Asia/Anadyr: +Russia Time Zone 3:933,933::Europe/Samara: +Western Brazilian Standard Time:934,934:BR:America/Rio_Branco: +Armenian Standard Time:935,935:AM:Asia/Yerevan:
10-10-2014