【发布时间】:2015-03-28 19:35:27
【问题描述】:
假设我有一个无时区的datetime 对象:
import datetime
import pytz
fmt = "%Y-%m-%d %H:%M:%S %Z%z"
dtUnaware = datetime.datetime(1979,2,20,6)
print(dtUnaware.strftime(fmt))
这产生:
1979-02-20 06:00:00
到目前为止,一切都很好。现在,我想为这个对象分配一个时区。看来我可以使用datetime.replace 或pytz.localize。
第一:
dtAware1 = dtUnaware.replace(tzinfo=pytz.timezone('Asia/Jerusalem'))
print(dtAware1.strftime(fmt))
返回:1979-02-20 06:00:00 LMT+0221。其次:
dtAware2 = pytz.timezone('Asia/Jerusalem').localize(dtUnaware, is_dst=None)
print(dtAware2.strftime(fmt))
返回1979-02-20 06:00:00 IST+0200。
第一种方法有什么问题?似乎分配了错误的时区。我做错了吗?
【问题讨论】: