我一直在猛烈抨击Google和SO而没有到达任何地方,但我确信它已被回答了一百次而且只是被埋葬了。
我从soap服务收到时间,需要将其转换为时区偏移量中指定的时间,所以
2014-02-06 13:30:00-05:00
应该是
2014-02-06 08:30:00
所以我可以格式化并显示活动的正确时间。
我一直在玩dateutil和pytz无济于事。任何人都可以指出我应该在哪里看?我发现的所有内容都会更改时区信息,但不会将小时数更改为它所属的位置。
答案 0 :(得分:4)
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()
method格式化字符串。