python: UTC 到当地夏令时
python: UTC to local daylight savings time
现在我的时区是夏令时,我在将 UTC 转换为当地时间时遇到了问题。
>>> from dateutil.parser import parse
>>> from dateutil import tz
>>> dt = parse('1:30').replace(tzinfo=tz.tzutc())
>>> dt
datetime.datetime(2015, 3, 8, 1, 30, tzinfo=tzutc())
>>> dt = dt.astimezone(tz.tzlocal())
>>> dt
datetime.datetime(2015, 3, 7, 20, 30, tzinfo=tzlocal())
当它是 1:30 UTC 时,它是当地时间 21:30,但我得到 20:30,如果我们今天早上没有更改为 DST,这将是正确的。
我觉得我遗漏了一些明显的东西。
我想我明白了问题所在。您从 3 月 8 日的 UTC 时间 1:30 开始。这对应于东部时间 在 夏令时生效之前的时间,因为夏令时在当地时间 3 月凌晨 2 点生效8. 尝试使用较晚的 UTC 时间进行测试,它应该可以工作。
现在我的时区是夏令时,我在将 UTC 转换为当地时间时遇到了问题。
>>> from dateutil.parser import parse
>>> from dateutil import tz
>>> dt = parse('1:30').replace(tzinfo=tz.tzutc())
>>> dt
datetime.datetime(2015, 3, 8, 1, 30, tzinfo=tzutc())
>>> dt = dt.astimezone(tz.tzlocal())
>>> dt
datetime.datetime(2015, 3, 7, 20, 30, tzinfo=tzlocal())
当它是 1:30 UTC 时,它是当地时间 21:30,但我得到 20:30,如果我们今天早上没有更改为 DST,这将是正确的。
我觉得我遗漏了一些明显的东西。
我想我明白了问题所在。您从 3 月 8 日的 UTC 时间 1:30 开始。这对应于东部时间 在 夏令时生效之前的时间,因为夏令时在当地时间 3 月凌晨 2 点生效8. 尝试使用较晚的 UTC 时间进行测试,它应该可以工作。