日期/时间库中的时区和 DST 计算

问题描述 投票:0回答:3

我正在专门使用 Luxon。然而,这个问题适用于所有日期/时间库。

如果一个国家(比如美国)决定全年保持夏令时会怎样?到目前为止,图书馆必须包含时区和 DST 日期列表。如果某个国家/地区的 DST 发生变化,是否需要使用更新的 DST 值发布新版本的库?

date datetime timezone dst luxon
3个回答
3
投票

不一定是新图书馆,但至少是新数据库:https://www.iana.org/time-zones.

IANA 不是唯一的时区数据库,但它可能是使用最广泛的。它每年更新几次。去年(2022 年)有 7 次更新。


2
投票

没有。 Luxon 对时区何时具有 DST 的感知并非来自其自己的数据文件;它来自 JS 运行时(浏览器或 Node),它通过 Intl API 公开它们。反过来,Intl API 使用来自主机操作系统的 TZ 规则。因此,当操作系统使用新规则更新时,Luxon 将获得这些新规则。


0
投票

这取决于图书馆。

有些图书馆捆绑了自己的时区数据,需要定期更新才能接收此类更新。示例包括:

其他图书馆从他们运行的主机环境中获取他们的时区数据,这可能反过来从图书馆或主机操作系统中获取他们的时区数据。示例包括:

  • Luxon (JavaScript),它使用
    Intl
    ,最常通过 ICU 实现,由浏览器(或 Node.js)分发
  • zoneinfo
    (内置于 Python),如果可用,则使用主机操作系统时区数据,否则使用 python
    tzdata
    包。
  • java.time
    (内置于 Java),它使用随 Java Runtime 分发的时区数据
  • TimeZoneInfo
    (内置于 .NET),它使用来自主机操作系统的时区数据

这些列表并不全面。

数据的最终来源通常是 IANA TZ 数据库。所有发布自己时区数据的图书馆都从那里派生。

不过,微软也依然单独维护着Windows时区数据。 Windows 平台上的 .NET 和其他较旧的 Windows 技术(例如 Win32 API)仍在使用它。

© www.soinside.com 2019 - 2024. All rights reserved.