PST 到 PDT 在 4 月 1 日而不是 3 月 11 日凌晨 2 点更改?

dan*_*ter 5 linux timezone

我收到抱怨说,在我的嵌入式设备中,华盛顿的 PST 时区比华盛顿提前一小时。我正在使用 tz 实用程序来设置时区。

这是洛杉矶时区

 2018   Sun, Mar 11 at 2:00 am  PST ? PDT   +1 hour (DST start) UTC-7h
        Sun, Nov 4  at 2:00 am  PDT ? PST   -1 hour (DST end)   UTC-8h
Run Code Online (Sandbox Code Playgroud)

我什至用最新的 2018 二进制文件更新了 tz 实用程序,但仍然遇到这个问题,我还缺少其他东西吗?

4月1号查了PST-PDT的变化后很疑惑?

usr/share/zoneinfo # date 031111002018; TZ='America/Los_Angeles' date
Sun Mar 11 11:00:00 UTC 2018
Sun Mar 11 03:00:00 PST 2018
/usr/share/zoneinfo # date 041111002018; TZ='America/Los_Angeles' date
Wed Apr 11 11:00:00 UTC 2018
Wed Apr 11 04:00:00 PDT 2018 <--- Here UTC-7 to UTC-8
Run Code Online (Sandbox Code Playgroud)

PST->PDT 更改为 4 月 1 日凌晨 2:00。

/usr/share/zoneinfo # date 040110242018; TZ='America/Los_Angeles' date 
Sun Apr  1 10:24:00 UTC 2018
Sun Apr  1 03:24:00 PDT 2018
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 12

这听起来像是您的设备正在使用Pacific-New时区,这是一个在美国从未成为法律的提议时区,并指定在 4 月的第一个星期日切换到夏令时:

# Rule  NAME    FROM    TO      TYPE    IN      ON      AT      SAVE    LETTER/S
## Rule Twilite XXXX    max     -       Apr     Sun>=1  2:00    1:00    D
## Rule Twilite XXXX    max     uspres  Oct     lastSun 2:00    1:00    PE
## Rule Twilite XXXX    max     uspres  Nov     Sun>=7  2:00    0       S
## Rule Twilite XXXX    max     nonpres Oct     lastSun 2:00    0       S
Run Code Online (Sandbox Code Playgroud)

由于各种原因,一些系统历来最终使用这个而不是正确的太平洋时区;有关示例,请参阅此 RISKS 报告(来自 1992 年!)或此 Debian 错误(来自 2016 年)。在tzdata2018 年的第一个版本中存在一些问题,这可能会导致某些系统出现问题。来自2018c 的发行说明

默认安装过程不再创建向后兼容链接US/Pacific-New,这会在用户设置过程中造成混淆(例如,参见 Debian 错误 815200)。使用make BACKWARD="backward pacificnew"反正创建链接,现在。最终,我们计划完全删除该链接。

pacificnew文件设置了从US/Pacific-New到的链接America/Los_Angelesbackward文件设置了从US/Pacific到的链接America/Los_Angeles。所以理论上数据应该是正确的,但这取决于您的Los_Angeles文件包含的内容。