Python将字符串转换为本地DateTime到UTC DateTim

2024-05-20 13:42:34 发布

您现在位置:Python中文网/ 问答频道 /正文

真的被困在这里了。我已经看过各种各样的答案,但它们中的一个似乎有效(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。在

^{pr2}$

我收到的错误信息是。。。。 “ValueError:month必须在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

Tags: indatetimelibpackagesline时间siteyear
1条回答
网友
1楼 · 发布于 2024-05-20 13:42:34

看起来您使用的Windows是旧版本的dateutil,您已经点击了this dateutil bug。在

解决方案(我都试过了,都管用):

  1. 将dateutile从1.5版升级到2.2版
  2. 如果由于某些原因无法升级,则可以删除文件Lib/site-packages/dateutil/tzwin.py和{}。但那是纯粹的邪恶。我会选择1。在

相关问题 更多 >