From 373e37bf13df654ba40c0bd9fcf345215be4eafb Mon Sep 17 00:00:00 2001 From: Justin Lu Date: Mon, 18 Sep 2023 22:08:17 +0000 Subject: [PATCH] 8313813: Field sun.util.calendar.CalendarDate#forceStandardTime is never set Reviewed-by: aturbanov, naoto --- .../sun/util/calendar/AbstractCalendar.java | 33 ++++++------------- .../sun/util/calendar/CalendarDate.java | 16 --------- .../util/calendar/ImmutableGregorianDate.java | 9 ----- 3 files changed, 10 insertions(+), 48 deletions(-) diff --git a/src/java.base/share/classes/sun/util/calendar/AbstractCalendar.java b/src/java.base/share/classes/sun/util/calendar/AbstractCalendar.java index 0362db82cec..50c8be6e314 100644 --- a/src/java.base/share/classes/sun/util/calendar/AbstractCalendar.java +++ b/src/java.base/share/classes/sun/util/calendar/AbstractCalendar.java @@ -165,31 +165,18 @@ public abstract class AbstractCalendar extends CalendarSystem { if (date.isNormalized()) { return ms - date.getZoneOffset(); } + // adjust time zone and daylight saving - int[] offsets = new int[2]; - if (date.isStandardTime()) { - // 1) 2:30am during starting-DST transition is - // intrepreted as 2:30am ST - // 2) 5:00pm during DST is still interpreted as 5:00pm ST - // 3) 1:30am during ending-DST transition is interpreted - // as 1:30am ST (after transition) - if (zi instanceof ZoneInfo) { - ((ZoneInfo)zi).getOffsetsByStandard(ms, offsets); - zoneOffset = offsets[0]; - } else { - zoneOffset = zi.getOffset(ms - zi.getRawOffset()); - } + // 1) 2:30am during starting-DST transition is + // interpreted as 3:30am DT + // 2) 5:00pm during DST is interpreted as 5:00pm DT + // 3) 1:30am during ending-DST transition is interpreted + // as 1:30am DT/0:30am ST (before transition) + if (zi instanceof ZoneInfo zInfo) { + // Offset value adjusts accordingly depending on DST status of date + zoneOffset = zInfo.getOffsetsByWall(ms, new int[2]); } else { - // 1) 2:30am during starting-DST transition is - // intrepreted as 3:30am DT - // 2) 5:00pm during DST is intrepreted as 5:00pm DT - // 3) 1:30am during ending-DST transition is interpreted - // as 1:30am DT/0:30am ST (before transition) - if (zi instanceof ZoneInfo) { - zoneOffset = ((ZoneInfo)zi).getOffsetsByWall(ms, offsets); - } else { - zoneOffset = zi.getOffset(ms - zi.getRawOffset()); - } + zoneOffset = zi.getOffset(ms - zi.getRawOffset()); } } ms -= zoneOffset; diff --git a/src/java.base/share/classes/sun/util/calendar/CalendarDate.java b/src/java.base/share/classes/sun/util/calendar/CalendarDate.java index 5ecde812607..528baa9e317 100644 --- a/src/java.base/share/classes/sun/util/calendar/CalendarDate.java +++ b/src/java.base/share/classes/sun/util/calendar/CalendarDate.java @@ -26,7 +26,6 @@ package sun.util.calendar; import java.lang.Cloneable; -import java.util.Locale; import java.util.TimeZone; /** @@ -82,9 +81,6 @@ public abstract class CalendarDate implements Cloneable { private TimeZone zoneinfo; private int zoneOffset; private int daylightSaving; - private boolean forceStandardTime; - - private Locale locale; protected CalendarDate() { this(TimeZone.getDefault()); @@ -293,22 +289,10 @@ public abstract class CalendarDate implements Cloneable { return normalized; } - - public boolean isStandardTime() { - return forceStandardTime; - } - public boolean isDaylightTime() { - if (isStandardTime()) { - return false; - } return daylightSaving != 0; } - protected void setLocale(Locale loc) { - locale = loc; - } - public TimeZone getZone() { return zoneinfo; } diff --git a/src/java.base/share/classes/sun/util/calendar/ImmutableGregorianDate.java b/src/java.base/share/classes/sun/util/calendar/ImmutableGregorianDate.java index 77fa4609397..3d9b2da548a 100644 --- a/src/java.base/share/classes/sun/util/calendar/ImmutableGregorianDate.java +++ b/src/java.base/share/classes/sun/util/calendar/ImmutableGregorianDate.java @@ -25,7 +25,6 @@ package sun.util.calendar; -import java.util.Locale; import java.util.TimeZone; class ImmutableGregorianDate extends BaseCalendar.Date { @@ -146,18 +145,10 @@ class ImmutableGregorianDate extends BaseCalendar.Date { return date.isNormalized(); } - public boolean isStandardTime() { - return date.isStandardTime(); - } - public boolean isDaylightTime() { return date.isDaylightTime(); } - protected void setLocale(Locale loc) { - unsupported(); - } - public TimeZone getZone() { return date.getZone(); }