【问题标题】:Why does Python return a negative timezone value?为什么 Python 返回负时区值?
【发布时间】:2012-08-12 15:39:20
【问题描述】:

对于time.timezone,Python 文档说:

本地(非 DST)时区的偏移量,以 UTC 以西的秒数为单位(西欧大部分地区为负数,美国为正数,英国为零)。

有人知道为什么它对西欧大部分地区返回负值吗?这些国家处于正抵消,而不是负抵消。

示例:布鲁塞尔位于 UTC+1 时区...

【问题讨论】:

  • 我怀疑有错字。你试过它真正返回的东西吗?
  • UTC_Time - Brussels_Time = -1 小时。所以你可以得到这个数字并与 UTC 时间相加并得到布鲁塞尔时间。他们可以做其他方式,你只需要减去。
  • 如果以秒为单位定义 UTC 以西,则负值对于位于 UTC 以东 的时区有意义。这让我觉得不常见,但描述是一致的。
  • 我知道这是一致的,但我对 Python 以这种不常见的方式处理它的原因很感兴趣。

标签: python time timezone


【解决方案1】:

这是一个 Unix 人工制品。尽管时区的标准数字描述是以 UTC 以东的小时和分钟为单位(布鲁塞尔为 UTC+1,纽约为 UTC-5 等),但 Unix timezone 以秒为单位 west 从世界标准时间。

来自http://pubs.opengroup.org/onlinepubs/7908799/xsh/tzset.html

外部变量 timezone 设置为协调世界时 (UTC) 和当地标准时间之间的差异,以秒为单位,例如:

TZ  timezone
EST 5*60*60
GMT 0*60*60
JST -9*60*60
MET -1*60*60
MST 7*60*60
PST 8*60*60

至于 Unix 为何会倒退,我猜这是历史上的意外,可能是因为 Unix 最初是在美国开发的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-29
    • 2020-04-01
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 2021-12-09
    • 2017-11-16
    • 1970-01-01
    相关资源
    最近更新 更多