【问题标题】:Is there any case where datetime.fromtimestamp returns an incorrect result using pytz?是否存在 datetime.fromtimestamp 使用 pytz 返回错误结果的情况?
【发布时间】:2012-08-16 05:53:27
【问题描述】:

pytz 要求您使用.astimezone 方法进行与UTC 的所有时间转换。然而,在一种特殊情况下——datetime.fromtimestamp——看起来你应该能够使用 Python 库的 datetime 方法。

它似乎在这里工作:

>>> import datetime
>>> import pytz
>>> ambigtime = 1352017800  # http://www.wolframalpha.com/input/?i=1352017800+unix+time+in+Los+Angeles
>>> amla = pytz.timezone('America/Los_Angeles')
>>> datetime.datetime.fromtimestamp(ambigtime, tz=amla)
datetime.datetime(2012, 11, 4, 1, 30, tzinfo=<DstTzInfo 'America/Los_Angeles' PDT-1 day, 17:00:00 DST>)
>>> datetime.datetime.fromtimestamp(ambigtime + 3600, tz=amla)
datetime.datetime(2012, 11, 4, 1, 30, tzinfo=<DstTzInfo 'America/Los_Angeles' PST-1 day, 16:00:00 STD>)

datetime.fromtimestamp 是否会在pytz 时区为您提供正确的结果?

【问题讨论】:

标签: python timezone pytz


【解决方案1】:

据我所知,pytz.timezone() 会给你一个tzinfo 的实例(或者更确切地说是它的一个子类),因此完全可以与datetime.fromtimestamp() 一起使用。

只要pytz 更新了 zoneinfo 文件,您就可以使用该方法创建本地化日期时间。然而,使用astimezone() 方法在两个区域之间转换日期时间确实更容易。如果我是正确的,它基本上会在日期时间上切换tzinfo 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-02
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多