我正在尝试将一个始终以太平洋时间表示的时间戳转换为协调世界时 (UTC)。在下面的代码中,我能够指定我拥有的时间戳是以太平洋时间,但它似乎不知道应该是相对于协调世界时的-7小时的偏移量,因为现在只是10月21日,夏令时还没有结束。
脚本:
import pytz
import datetime
naive_date = datetime.datetime.strptime("2013-10-21 08:44:08", "%Y-%m-%d %H:%M:%S")
localtz = pytz.timezone('America/Los_Angeles')
date_aware_la = naive_date.replace(tzinfo=localtz)
print date_aware_la
输出:
2013-10-21 08:44:08-08:00
直到 DST 在11月3日结束前,它应该有一个偏移量为 -07:00。当 DST 生效和不生效时,如何让我的时区感知日期具有正确的偏移量?pytz 是否聪明到足以知道 DST 将在11月3日生效?
总体目标:我只是想将时间戳转换为 UTC,因为我会得到一个太平洋时间戳,没有任何指示 DST 是否生效。 我不是从 Python 本身生成此日期,因此无法使用 utc_now()。
naive_date
是明确存在的,你可以将is_dst=None
传递给localize()
方法;否则可能会静默选择错误的时间。 - jfs