是否有任何情况,datetime.fromtimestamp使用pytz返回不正确的结果?

时间:2012-08-20 21:30:20

标签: python timezone pytz

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时区为您提供正确结果的情况?

1 个答案:

答案 0 :(得分:1)

据我所知,pytz.timezone()将为您提供tzinfo(或更确切地说是其子类)的实例,因此可以与datetime.fromtimestamp()一起使用。

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