2015-04-03 54 views
0
import datetime 
import pytz # install from pip 

US_PACIFIC_TIMEZONE = pytz.timezone("US/Pacific") 

dt = datetime.datetime.utcnow().replace(tzinfo=US_PACIFIC_TIMEZONE) 
print(dt == dt.replace(tzinfo=US_PACIFIC_TIMEZONE)) # True 

dt = datetime.datetime.now(tz=US_PACIFIC_TIMEZONE) 
print(dt == dt.replace(tzinfo=US_PACIFIC_TIMEZONE)) # False 

所以看起来datetime.datetime.now(tz=..)未设置为我指定的时区...莫名其妙时区行为

它看起来像时区是使用datetime.now时设置的,但它通过一个小时的区域的关闭。

这是为什么?

+0

使用'localize',而不是'replace'。阅读[pytz文档](http://pythonhosted.org/pytz)。 – 2015-04-03 21:00:11

+0

@MattJohnson:'.now(tz)'按原样工作。即使本地时区为“US/Pacific”(这在后期DST转换结束时失败,而前者在没有问题的情况下仍然运行,您不应该在这里使用'tz.localize(.now())'模糊的当地时间)。 – jfs 2015-04-03 21:08:30

+0

@ J.F.Sebastian - 是的,同意“现在”的情况。我一般都在说话。谢谢。 – 2015-04-03 22:26:30

回答

相关问题