我一直在与谷歌和 SO 撞头,却一无所获,但我确信它已经被回答了一百次,只是被埋没了。
我从肥皂服务接收时间,需要将其转换为时区偏移中指定的时间,所以
2014-02-06 13:30:00-05:00
应该
2014-02-06 08:30:00
所以我可以格式化并显示事件的正确时间。
我一直在玩 dateutil 和 pytz 无济于事。谁能指出我应该看的地方?我发现的所有内容都会更改时区信息,但不会将小时更改为它所属的位置。
我一直在与谷歌和 SO 撞头,却一无所获,但我确信它已经被回答了一百次,只是被埋没了。
我从肥皂服务接收时间,需要将其转换为时区偏移中指定的时间,所以
2014-02-06 13:30:00-05:00
应该
2014-02-06 08:30:00
所以我可以格式化并显示事件的正确时间。
我一直在玩 dateutil 和 pytz 无济于事。谁能指出我应该看的地方?我发现的所有内容都会更改时区信息,但不会将小时更改为它所属的位置。
dateutil
直接处理格式:
from dateutil import parser
dt = parser.parse('2014-02-06 13:30:00-05:00')
现在您有了一个时区感知datetime.datetime()
值,包括将其显示为 UTC ISO8601 时间戳:
from dateutil import tz
print dt.astimezone(tz.tzutc()).isoformat(' ')
这用于datetime.datetime.astimezone()
将时区感知datetime
值转换为 UTC 时区。
演示:
>>> from dateutil import parser
>>> from dateutil import tz
>>> dt = parser.parse('2014-02-06 13:30:00-05:00')
>>> print dt.astimezone(tz.tzutc()).isoformat(' ')
2014-02-06 18:30:00+00:00
这包括时区偏移量(的+00:00
),如果需要,您可以使用该datetime.datetime.strftime()
方法以不同的方式格式化字符串。