CCT Version 3.0.0.0 2024-04-23 00:00:00 Time flies when you're having fun! File out: ..\..\..\OutputFiles\CCTOut_X_TESTUNUSUAL.txt ========== TestUnusual() ========== One might ask "why is implementing civil time and TzDb so difficult?" These examples illustrate some of the challenges. There are many "unusual" transitions in TzDb. There are hundreds of unfamiliar and surprising permutations and variations of local time zones and rules strewn throughout the 490-some time zones. These few examples are only the tip of the iceberg. First of all, nearly every zone begins with a strange value, typically in the late 1800s. Even though these are far in the past an implementation cannot ignore them because they are the root beginning of each time zone and any transition may be similar, such as the seconds resolution values. Here, the starting values in Americaa/New_York with a West UTC shift of 00:03:58 at 12:03:58. D1883-11-18T12:03:57U-04:56:02w00:03:58+12:03:58Zamerica/new_yorkAlmtV2021aL00MuX D1883-11-18T12:00:00U-05w00:03:58+12:03:58Zamerica/new_yorkAestV2021aL00MuX New_York also has an example where only the Posix "abbreviation name" changes. CCT takes care of this adding a "Q" change indicator: D1945-08-14T18:59:59U-04Zamerica/new_yorkAewtQewt_ept+00V2021aL00S01cMuX D1945-08-14T19:00:00U-04Zamerica/new_yorkAeptQewt_ept+00V2021aL00S01cMuX Moscow has a number of unusual transitions. This example has *2-hour DST shift* to so-called 'double summertime': D1918-05-31T21:59:59U+02:31:19Zeurope/moscowAmmtV2021aL00S00t02a22cMuX D1918-06-01T00:00:00U+04:31:19Zeurope/moscowAmdstV2021aL00S02cMuX This example has a West UTC shift with an *offsetting* DST shift so there is no discontinuity in the YMDhms sequence: D1991-03-31T01:59:59U+03w01+02Zeurope/moscowAmskV2021aL16S00t01a02cMuX D1991-03-31T02:00:00U+03w01+02Zeurope/moscowAeestV2021aL16S01t01a02cMuX This example has only an East UTC shift: D2011-03-27T01:59:59U+03e01+02Zeurope/moscowAmskV2021aL24MuX D2011-03-27T03:00:00U+04e01+02Zeurope/moscowAmskV2021aL24MuX This example in Asia/Baku is similar to the example in Moscow but in the opposite directions. It has an East UTC shift with an offsetting DST shift so there is no discontinuity in the YMDhms sequence: D1992-09-27T02:59:59U+04e01+03Zasia/bakuA+04V2021aL17S01t-01a03cMuX D1992-09-27T03:00:00U+04e01+03Zasia/bakuA+04V2021aL17S00t-01a03cMuX This example in Asia/Baku is more subtle. There appears to be no transition, but there is. The TzDb source shows 4:00 - +04 1996 4:00 EUAsia +04/+05 1997 The only differences in the source are the change of RULES (- to EUAsia) and FORMAT (+04 to +04/+05) CCT takes care of this adding a "Q" change indicator: D1996-12-31T23:59:59U+04Zasia/bakuA+04V2021aL20MuX D1997-01-01T00:00:00U+04Zasia/bakuA+04Q+04_+04+00V2021aL20MuX Your time is up.