如何转换" Tue Feb 25 2014 00:00:00 GMT + 0530(IST)"到python datetime对象?

时间:2014-03-18 15:59:46

标签: python datetime timezone python-datetime

我对dateformat Tue Feb 25 2014 00:00:00 GMT+0530 (IST)有疑问。

  • Tue Feb 25 2014 00:00:00表示GMTIST
  • 是否可以将其转换为python datetime
  • 也可以在GMT中将其转换为DD-MM-YY,HH:MM:SS格式。

以下是我尝试转换为python datetime ::

的内容

但是当我尝试使用%z

时,我收到了错误
>>> time_format="%a %b %d %Y %H:%M:%S GMT%z (%Z)"
>>> v="Tue Feb 25 2014 00:00:00 GMT+0530 (IST)"
>>> mydate=datetime.strptime(v,time_format)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/_strptime.py", line 317, in _strptime
    (bad_directive, format))
ValueError: 'z' is a bad directive in format '%a %b %d %Y %H:%M:%S GMT%z (%Z)'

但这有效:

>>> time_format="%a %b %d %Y %H:%M:%S GMT (%Z)"
>>> v="Tue Feb 25 2014 00:00:00 GMT (IST)"
>>> datetime.strptime(v,time_format)    
datetime.datetime(2014, 2, 25, 0, 0)

但仍然不了解TIMEZONE 的任何内容。

2 个答案:

答案 0 :(得分:3)

在系统终端

easy_install python-dateutil

在python shell中

from dateutil import parser as date_parser
print date_parser.parse("Tue Feb 25 2014 00:00:00 GMT+0530 (IST)")

Dateutil的解析通常只能将你抛出的任何内容解析为Python日期时间。

答案 1 :(得分:1)

我认为最好的方法就是尝试这样的事情,特别是如果您想避免在Python 3.6.9中使用外部库的话:

datetime.strptime(v,"%a %b %d %Y %H:%M:%S %Z%z (IST)")