2016-04-26 90 views
-1

我有一個Python日期時間對象,這裏是offset和tzname()。在Django中,時區存儲爲UTC,我希望它分開存儲tzname,以便我可以使用該字段重新轉換爲實際的日期時間。Django/Python時間戳將EDT轉換爲UTC

>>>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' 

問題: -

當我保存 「DT」 對象在Django也將其轉換爲UTC format.How我做了重新轉換UTC格式EDT格式?

我使用此鏈接作爲參考,但我不知道如何爲'EDT'創建to_zone對象。 'UTC'正常工作,但tz.gettz('EDT')總是無。

>>> 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

+0

你是什麼輸入? ('類型(input_object)')。你想在'America/New_York'時區顯示給定的UTC時間嗎? (你知道'timezone.activate()','localtime'嗎?)什麼是'USE_TZ','TIME_ZONE','timezone.get_current_timezone()'? – jfs

+0

我已經添加了所有需要的細節......當我在Django中存儲「dt」對象時,它會自動轉換爲「UTC」格式。我想檢索'UTC'對象並再次將其轉換爲'EDT'格式。 – user1050619

回答

0

日期時間包有一個方法 「astimezone」:

datetime.astimezone

所以

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