真的停留在這裏。我看了各種答案,但他們的區似乎工作(Python2.7)Python將字符串轉換爲本地日期時間爲UTC DateTime
我有一個字符串fileGenTime
,代表時間/日期。我需要將它解析爲日期/時間,然後將其轉換爲UTC。我一直在使用「pytz」,然後「dateutil」試過,但我不知道爲什麼它不會工作....這裏是我的嘗試......
from datetime import datetime
from dateutil import tz
fileGenTime = 'Thu Jan 2 19:23:34 EST 2014'
fileGenTime = fileGenTime.replace(' ',' ') #double spaces...
wday, month, day, time, zone, year = fileGenTime.split(' ')
hour, minute, second = time.split(':')
localGenTime = datetime.strptime(day +' '+ month +' '+ year
+' '+ hour +' '+ minute +' '+ second, '%d %b %Y %H %M %S')
我最初嘗試,包括在zone
這最後一行,並使用格式爲arg的%Z
...現在我試圖將本地時間轉換爲一個帶有時區的時間,然後使用astimezone
將其轉換爲UTC。
localZone = tz.gettz(zone)
localGenTime = localGenTime.replace(tzinfo = localZone)
normalisedTimezone = tz.gettz('UTC')
normalisedGenTime = localGenTime.astimezone(normalisedTimezone)
我收到錯誤消息稱.... 「ValueError異常:每月必須在1..12」 ......嗯?
我拉我的頭髮!任何幫助,將不勝感激!
這裏全部追溯....
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "C:\Python27\lib\site-packages\python_dateutil-1.5-py2.7.egg\dateutil\tzwin.py", line 32, in utcoffset
if self._isdst(dt):
File "C:\Python27\lib\site-packages\python_dateutil-1.5-py2.7.egg\dateutil\tzwin.py", line 67, in _isdst
self._dstweeknumber)
File "C:\Python27\lib\site-packages\python_dateutil-1.5-py2.7.egg\dateutil\tzwin.py", line 166, in picknthweekday
first = datetime.datetime(year, month, 1, hour, minute)
ValueError: month must be in 1..12
你可以添加完整的追溯? –
編輯包含追溯奈傑爾,謝謝 – AlanF
在我的機器上它運行正常。你的dateutil版本很舊。你可以用更新的版本試用嗎? – Bach