JDK-8073446 : TimeZone getOffset API does not return a DST offset between years 2038-2137
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.util:i18n
  • Affected Version: 6u91,7,8,9,11,15,16
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2015-02-19
  • Updated: 2021-06-28
  • Resolved: 2021-03-26
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 11 JDK 13 JDK 15 JDK 16 JDK 17 JDK 7 JDK 8 Other
11.0.12-oracleFixed 13.0.8Fixed 15.0.4Fixed 16.0.2Fixed 17 b16Fixed 7u311Fixed 8u301Fixed openjdk8u302Fixed
Related Reports
Relates :  
Relates :  
Description
Introduced by this: http://hg.openjdk.java.net/jdk7u/jdk7u-dev/jdk/file/tip/src/share/classes/sun/util/calendar/ZoneInfo.java#l308
Comments
Note that most approvals got done via JDK-8262110 which is the same commit. Includes JDK 11u.
20-04-2021

Fix Request (8u) I would like to backport this patch to 8u for parity with Oracle 8u301. 8u patch has been reviewed.
14-04-2021

8u code review thread: https://mail.openjdk.java.net/pipermail/jdk8u-dev/2021-April/013645.html
13-04-2021

11u code review thread: https://mail.openjdk.java.net/pipermail/jdk-updates-dev/2021-April/005718.html
13-04-2021

Changeset: 7284f013 Author: Naoto Sato <naoto@openjdk.org> Date: 2021-03-26 17:13:49 +0000 URL: https://git.openjdk.java.net/jdk/commit/7284f013
26-03-2021

1.6.0_95: 2037-02-09 03:20:49 _ -28800000 2037-03-09 03:20:49 _ -25200000 2037-12-31 03:20:49 _ -28800000 2038-02-09 03:20:49 _ -28800000 2038-03-09 03:20:49 _ -28800000 2039-02-09 03:20:49 _ -28800000 2039-03-09 03:20:49 _ -28800000 2137-02-09 03:20:49 _ -28800000 2137-03-09 03:20:49 _ -28800000 2138-02-09 03:20:49 _ -28800000 2138-03-09 03:20:49 _ -25200000 7681-02-09 03:20:49 _ -28800000 7681-03-09 03:20:49 _ -25200000
26-02-2015

x +" _ " + TimeZone.getTimeZone("PST8PDT").getOffset(df.parse( x ).getTime(): this string on different dates on different java looks same: 6u38b05: 2037-02-09 14:28:49 _ -28800000 2037-03-09 14:28:49 _ -25200000 2037-12-31 14:28:49 _ -28800000 2038-02-09 14:28:49 _ -28800000 2038-03-09 14:28:49 _ -28800000 2039-02-09 14:28:49 _ -28800000 2039-03-09 14:28:49 _ -28800000 2137-02-09 14:28:49 _ -28800000 2137-03-09 14:28:49 _ -28800000 2138-02-09 14:28:49 _ -28800000 2138-03-09 14:28:49 _ -25200000 7681-02-09 14:28:49 _ -28800000 7681-03-09 14:28:49 _ -25200000 6u38b33: 2037-02-09 14:28:49 _ -28800000 2037-03-09 14:28:49 _ -25200000 2037-12-31 14:28:49 _ -28800000 2038-02-09 14:28:49 _ -28800000 2038-03-09 14:28:49 _ -28800000 2039-02-09 14:28:49 _ -28800000 2039-03-09 14:28:49 _ -28800000 2137-02-09 14:28:49 _ -28800000 2137-03-09 14:28:49 _ -28800000 2138-02-09 14:28:49 _ -28800000 2138-03-09 14:28:49 _ -25200000 7681-02-09 14:28:49 _ -28800000 7681-03-09 14:28:49 _ -25200000 6u91b13: 2037-02-09 14:28:49 _ -28800000 2037-03-09 14:28:49 _ -25200000 2037-12-31 14:28:49 _ -28800000 2038-02-09 14:28:49 _ -28800000 2038-03-09 14:28:49 _ -28800000 2039-02-09 14:28:49 _ -28800000 2039-03-09 14:28:49 _ -28800000 2137-02-09 14:28:49 _ -28800000 2137-03-09 14:28:49 _ -28800000 2138-02-09 14:28:49 _ -28800000 2138-03-09 14:28:49 _ -25200000 7681-02-09 14:28:49 _ -28800000 7681-03-09 14:28:49 _ -25200000 6u95b07: 2037-02-09 14:28:49 _ -28800000 2037-03-09 14:28:49 _ -25200000 2037-12-31 14:28:49 _ -28800000 2038-02-09 14:28:49 _ -28800000 2038-03-09 14:28:49 _ -28800000 2039-02-09 14:28:49 _ -28800000 2039-03-09 14:28:49 _ -28800000 2137-02-09 14:28:49 _ -28800000 2137-03-09 14:28:49 _ -28800000 2138-02-09 14:28:49 _ -28800000 2138-03-09 14:28:49 _ -25200000 7681-02-09 14:28:49 _ -28800000 7681-03-09 14:28:49 _ -25200000 7b148: 2037-02-09 14:28:49 _ -28800000 2037-03-09 14:28:49 _ -25200000 2037-12-31 14:28:49 _ -28800000 2038-02-09 14:28:49 _ -28800000 2038-03-09 14:28:49 _ -28800000 2039-02-09 14:28:49 _ -28800000 2039-03-09 14:28:49 _ -28800000 2137-02-09 14:28:49 _ -28800000 2137-03-09 14:28:49 _ -28800000 2138-02-09 14:28:49 _ -28800000 2138-03-09 14:28:49 _ -25200000 7681-02-09 14:28:49 _ -28800000 7681-03-09 14:28:49 _ -25200000 8u60b03: 2037-02-09 14:28:49 _ -28800000 2037-03-09 14:28:49 _ -25200000 2037-12-31 14:28:49 _ -28800000 2038-02-09 14:28:49 _ -28800000 2038-03-09 14:28:49 _ -28800000 2039-02-09 14:28:49 _ -28800000 2039-03-09 14:28:49 _ -28800000 2137-02-09 14:28:49 _ -28800000 2137-03-09 14:28:49 _ -28800000 2138-02-09 14:28:49 _ -28800000 2138-03-09 14:28:49 _ -25200000 7681-02-09 14:28:49 _ -28800000 7681-03-09 14:28:49 _ -25200000 9b51: 2037-02-09 14:28:49 _ -28800000 2037-03-09 14:28:49 _ -25200000 2037-12-31 14:28:49 _ -28800000 2038-02-09 14:28:49 _ -28800000 2038-03-09 14:28:49 _ -28800000 2039-02-09 14:28:49 _ -28800000 2039-03-09 14:28:49 _ -28800000 2137-02-09 14:28:49 _ -28800000 2137-03-09 14:28:49 _ -28800000 2138-02-09 14:28:49 _ -28800000 2138-03-09 14:28:49 _ -25200000 7681-02-09 14:28:49 _ -28800000 7681-03-09 14:28:49 _ -25200000 Also this behavior wasn't affected by TZ updates: $ head -n 1 /home/lev/Downloads/6u91b13/jre/lib/zi/ZoneInfoMappings javazmD tzdata2015a@#���i $ head -n 1 /home/lev/Downloads/6u91b13/jre/lib/zi/ZoneInfoMappings javazmD tzdata2015a@#���i $ head -n 1 /home/lev/Downloads/6u95b07/jre/lib/zi/ZoneInfoMappings javazmD tzdata2015a@#���i $ head -n 1 /home/lev/Downloads/6u38b33/jre/lib/zi/ZoneInfoMappings javazmD tzdata2012i@#���h
24-02-2015