From f3a04f23f8960c57ed24d98089ab79ffec803e7e Mon Sep 17 00:00:00 2001 From: David Richardson Date: Fri, 28 Aug 2026 13:59:05 -0600 Subject: [PATCH] Fix incorrect UTC offsets in CPTimeZone abbreviation table MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Correct timeDifferenceFromUTC values for MDT, WAT, NZDT, NZST, and WIT. * Update MSK to the current constant UTC+3 offset. Russia abolished Daylight Saving Time in 2014. * Leave MSD unchanged. Add an inline comment explaining that Moscow Summer Time no longer exists and assigning a new offset would fabricate data. * Track future work to replace this static table with Intl-backed lookup from browsers’ internal values. This future lookup will include a protocol seam for: * runtimes without complete timezone data. * developers who cannot tolerate non-current information from browser update latency or have other individual need. --- Foundation/CPTimeZone.j | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Foundation/CPTimeZone.j b/Foundation/CPTimeZone.j index 9521012ca..f87d06e4b 100644 --- a/Foundation/CPTimeZone.j +++ b/Foundation/CPTimeZone.j @@ -289,12 +289,14 @@ function _abbreviationForNameAndDate(tzName, date) @"IST" : 330, @"JST" : 540, @"KST" : 540, - @"MDT" : -300, - @"MSD" : 240, - @"MSK" : 240, + @"MDT" : -360, + @"MSD" : 240, // Stale: Russia abolished DST in 2014. No current offset + // is correct for a distinct "Moscow Summer Time"; left + // unfixed rather than fabricated. See CPTimeZone redesign. + @"MSK" : 180, @"MST" : -420, - @"NZDT" : 900, - @"NZST" : 900, + @"NZDT" : 780, + @"NZST" : 720, @"PDT" : -420, @"PET" : -300, @"PHT" : 480, @@ -302,10 +304,10 @@ function _abbreviationForNameAndDate(tzName, date) @"PST" : -480, @"SGT" : 480, @"UTC" : 0, - @"WAT" : -540, + @"WAT" : 60, @"WEST" : 60, @"WET" : 0, - @"WIT" : 540 + @"WIT" : 420 }; var englishLocalizedName = @{