Действительно застрял здесь. Я смотрел различные ответы, но зона их, похоже, работает (Python2.7)Python Преобразовать строку в локальную DateTime в 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
в эту последнюю строку и используя %Z
в формате arg ... Теперь я пытаюсь преобразовать локальное время в один с часовым поясом, а затем использовать 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
Не могли бы вы добавить полную трассу? –
Отредактировано для включения traceback Nigel, спасибо – AlanF
На моей машине все работает нормально. Ваша версия dateutil довольно старая. Можете ли вы попробовать его с более новой версией? – Bach