我在我的嵌入式设备中收到投诉,称太平洋标准时间 (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
我什至使用最新的 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
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
答案1
这听起来像是您的设备正在使用Pacific-New
时区,这是一个拟议的时区,在美国从未成为法律,并且指定在四月的第一个星期日切换到夏令时:
# 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
由于各种原因,某些系统历史上最终使用此时区而不是正确的太平洋时区;看这份风险报告(从 1992 年开始!)或这个 Debian 错误(自 2016 年起)为例。 2018 年第一个版本中存在一些问题tzdata
,可能导致某些系统出现问题。从2018c 的发行说明:
默认安装过程不再创建向后兼容链接
US/Pacific-New
,这会在用户设置过程中引起混乱(例如,请参阅 Debian bug 815200)。无论如何,现在使用make BACKWARD="backward pacificnew"
来创建链接。最终我们计划完全删除该链接。
该pacificnew
文件设置了一个从US/Pacific-New
到 的链接America/Los_Angeles
,并且该backward
文件设置了一个从US/Pacific
到 的链接America/Los_Angeles
。因此理论上数据应该是正确的,但这取决于您的Los_Angeles
文件包含的内容。