我有这行代码:
datetime.datetime.fromtimestamp(0, "<DstTzInfo 'US/Pacific' PST-1 day, 16:00:00 STD>")
它一直给我这个错误:
TypeError: tzinfo argument must be None or of a tzinfo subclass, not type 'str'
什么是tzinfo
以及它去了哪里?
答案 0 :(得分:12)
错误有点不言自明:tzinfo
参数需要tzinfo
个对象而不是字符串。不过,我建议使用pytz
。 pytz
比标准库对时区的支持更强大。您可以使用pip install pytz
进行安装。有关详细信息,请参阅the docs。
>>> from datetime import datetime
>>> import pytz
>>> d = datetime.fromtimestamp(0)
>>> pacific = pytz.timezone('US/Pacific')
>>> pacific
<DstTzInfo 'US/Pacific' PST-1 day, 16:00:00 STD>
>>> pacific_date = pacific.localize(d)
>>> pacific_date
datetime.datetime(1969, 12, 31, 17, 0, tzinfo=<DstTzInfo 'US/Pacific' PST-1 day, 16:00:00 STD>)
答案 1 :(得分:2)
将POSIX时间戳转换为本地时区,例如'US/Pacific'
:
from datetime import datetime
import pytz # $ pip install pytz
timestamp = 0 # seconds since the Epoch
local_dt = datetime.fromtimestamp(timestamp, pytz.timezone('US/Pacific'))