This is a REDO of the Fix that was incompletely implemented earlier:
[8285838: Fix for TZ environment variable DST 
rules](https://github.com/openjdk/jdk/pull/8660)

Offset calculation now accounts all the way upto year in order to avoid 
cross-day miscalculations as well as to calculate always in the correct 
direction for offset. In situations where there may be multiple days, the 
excess days of offset will be shaved off by applying mod to `seconds_per_day` , 
which will remove the excessive days that might be included in the offset 
calculation for special scenarios like a leap year / February months and 
variances between 30 and 31 days.

I have tested this solution with the cases where this fix had failed last time 
as well, and confirmed it works:
_(where 7200 represents 7200 seconds -> +2 hour offset)_
Sample output:
![image](https://user-images.githubusercontent.com/6877595/176259828-07e27901-4a3f-4949-bd8d-2f88c979685a.png)

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

Commit messages:
 - 8288377: Offset calculation fix for DST with custom TZ.

Changes: https://git.openjdk.org/jdk/pull/9312/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=9312&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8288377
  Stats: 118 lines in 2 files changed: 114 ins; 1 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/9312.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/9312/head:pull/9312

PR: https://git.openjdk.org/jdk/pull/9312

Reply via email to