【问题标题】:Python Pytz US/Pacific timezone issue [duplicate]Python Pytz美国/太平洋时区问题[重复]
【发布时间】:2019-04-16 17:55:34
【问题描述】:

这是我的 Python 代码:

import pytz
from datetime import datetime

tz = pytz.timezone('US/Pacific')
now_local = datetime.now().replace(tzinfo=tz)
print("now_local: {}".format(now_local))

它打印这个输出:

now_local: 2018-11-13 12:06:03.255983-07:53

这很奇怪,因为我认为时区偏移量应该是 -08:00 而不是 -07:53。我很确定美国太平洋的时区偏移量是 8 小时。

我错过了什么吗?

我使用的是 Python 2.7.14 版和 Pytz 2018.4 版

【问题讨论】:

    标签: python timezone pytz


    【解决方案1】:

    是的,pytz的主页显示这个错误:

    不幸的是,对于许多时区,使用标准日期时间构造函数的 tzinfo 参数对 pytz “不起作用”。

    >>> datetime(2002, 10, 27, 12, 0, 0, tzinfo=amsterdam).strftime(fmt)  # /!\ Does not work this way!
    '2002-10-27 12:00:00 LMT+0020'
    

    你需要使用tz.localize(dt):

    >>> print(tz.localize(datetime.now()))
    2018-11-13 15:20:12.172381-08:00
    

    否则,您的 tzinfo 对象会停留在“默认”状态,对于大多数区域来说,这是“本地平均时间”的近似值,而不是任何标准时间。

    【讨论】:

      猜你喜欢
      • 2015-12-31
      • 1970-01-01
      • 2018-12-16
      • 2012-09-30
      • 1970-01-01
      • 2019-04-06
      • 2017-01-29
      • 2021-09-05
      • 2021-12-22
      相关资源
      最近更新 更多