真的卡在这里。我已经看过各种答案,但它们的区域似乎有效(Python2.7)
我有一个字符串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
答案 0 :(得分:2)
您似乎正在使用旧版dateutil
的Windows并且您已点击this dateutil bug。
解决方案(我已经尝试了两种方法,都有效):
Lib/site-packages/dateutil/tzwin.py
和Lib/site-packages/dateutil/tzwin.pyc
。但那是纯粹的邪恶。我会选择#1选项。