Python:时间转换

时间:2014-02-06 15:27:51

标签: python datetime pytz python-dateutil

我一直在猛烈抨击Google和SO而没有到达任何地方,但我确信它已被回答了一百次而且只是被埋葬了。

我从soap服务收到时间,需要将其转换为时区偏移量中指定的时间,所以

2014-02-06 13:30:00-05:00

应该是

2014-02-06 08:30:00

所以我可以格式化并显示活动的正确时间。

我一直在玩dateutil和pytz无济于事。任何人都可以指出我应该在哪里看?我发现的所有内容都会更改时区信息,但不会将小时数更改为它所属的位置。

1 个答案:

答案 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格式化字符串。