Django / Python时间戳将EDT转换为UTC

时间:2016-04-26 06:13:17

标签: python django datetime

我有一个Python日期时间对象,这里是偏移量和tzname()。和Django一样,时区存储为UTC,我希望它分别存储tzname,这样我就可以使用该字段重新转换为实际的日期时间。

>>>from dateutil.parser import parse
>>>dt = parse('Tue Apr 26 2016 08:32:00 GMT-0400 (EDT)')

>>> dt
datetime.datetime(2016, 4, 26, 8, 32, tzinfo=tzoffset('EDT', 14400))
>>> dt.tzinfo
tzoffset('EDT', 14400)
>>> dt.tzname()
'EDT'

问题: -

当我在Django中存储“dt”对象时,它将其转换为UTC格式。如何将UTC格式重新转换为EDT格式?

我正在使用此链接作为参考,但我不确定如何为'EDT'创建to_zone对象。 'UTC'工作正常,但tz.gettz('EDT')始终为None。

>>> to_zone=tz.gettz('EDT')
>>> to_zone
>>> to_zone=tz.gettz('UTC')
>>> to_zone
tzfile('/usr/share/zoneinfo/UTC')

Python - Convert UTC datetime string to local datetime

1 个答案:

答案 0 :(得分:0)

datetime包有一个方法“astimezone”:

datetime.astimezone

所以

tzone = tz.gettz('EDT')
newdate = olddate.astimezone(tzone)