Daylight Savings Time

1. Google Mainline Timezone

Mainline 模块 com.google.android.tzdata3 使用了 ICU 的数据和接口:
http://aospxref.com/android-12.0.0_r3/xref/external/icu/
http://aospxref.com/android-12.0.0_r3/xref/system/timezone/
https://aospxref.com/android-12.0.0_r3/xref/cts/common/device-side/util-axt/src/com/android/compatibility/common/util/mainline/MainlineModule.java

2. ICU 模块以及 IANA 数据

ICU 的数据来自 IANA:
ICU - International Components for Unicode
https://github.com/unicode-org/icu
https://www.iana.org/time-zones
以美国为例,可看到 2007 年开始,夏令时开始和结束时间已基本没有变化了:
\tzdata2022f.tar.gz\tzdata2022f.tar\northamerica

# Rule  NAME    FROM    TO  -   IN  ON  AT  SAVE    LETTER/S
Rule    US  1918    1919    -   Mar lastSun 2:00    1:00    D
Rule    US  1918    1919    -   Oct lastSun 2:00    0   S
Rule    US  1942    only    -   Feb 9   2:00    1:00    W # War
Rule    US  1945    only    -   Aug 14  23:00u  1:00    P # Peace
Rule    US  1945    only    -   Sep 30  2:00    0   S
Rule    US  1967    2006    -   Oct lastSun 2:00    0   S
Rule    US  1967    1973    -   Apr lastSun 2:00    1:00    D
Rule    US  1974    only    -   Jan 6   2:00    1:00    D
Rule    US  1975    only    -   Feb lastSun 2:00    1:00    D
Rule    US  1976    1986    -   Apr lastSun 2:00    1:00    D
Rule    US  1987    2006    -   Apr Sun>=1  2:00    1:00    D
Rule    US  2007    max -   Mar Sun>=8  2:00    1:00    D
Rule    US  2007    max -   Nov Sun>=1  2:00    0   S

在历史上,不同的地区也可能会存在与国家不同的夏令时,这也会在各个地区上进行标记,确保时间的可回溯性。

3. 结论

IANA tzdata中包含了各个国家的夏令时开始时间,结束时间信息,但是没有找到利用该时间信息的 API。
当然,也可以通过脚本导出该夏令时开始和结束时间的合适格式,给各种场景使用。

4. 参考资料

zoneinfo — IANA time zone support
https://docs.python.org/3/library/zoneinfo.html

tzdata
https://github.com/python/tzdata
https://pypi.org/project/tzdata/
https://tzdata.readthedocs.io/en/latest/index.html

timeanddate
https://www.timeanddate.com/
https://www.timeanddate.com/time/dst/2022.html

Android中的Unicode国际组件(ICU)库
https://www.jianshu.com/p/920acad5ec53
国际化组件 Unicode (ICU) 函数库
https://cloud.tencent.com/developer/article/1694599

你可能感兴趣的:(Daylight Savings Time)