On Wed, 27 Jul 2022 20:18:16 GMT, Gaurav Chaudhari <d...@openjdk.org> wrote:
>> 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: >>  > > Gaurav Chaudhari has updated the pull request incrementally with one > additional commit since the last revision: > > 8288377: Added GMT0 corner case and minor format fixes. Thanks. Looks good with one minor request. src/java.base/unix/native/libjava/TimeZone_md.c line 587: > 585: > 586: strftime(offset, 6, "%z", &localtm); > 587: if (strlen(offset) != 5) { What I meant was the return value from `strftime`, not the length from `strlen`, ie, `if (strftime(...) != 5)`. It should be more robust. ------------- Changes requested by naoto (Reviewer). PR: https://git.openjdk.org/jdk/pull/9312