猿问

将UTC偏移量转换为日期时间对象

将UTC偏移量转换为日期时间对象

给定这个字符串:"Fri, 09 Apr 2010 14:10:50 +0000"如何将其转换为datetime对象?


做了一些阅读后,我觉得这应该有用,但它不...


>>> from datetime import datetime

>>>

>>> str = 'Fri, 09 Apr 2010 14:10:50 +0000'

>>> fmt = '%a, %d %b %Y %H:%M:%S %z'

>>> datetime.strptime(str, fmt)

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "/usr/lib64/python2.6/_strptime.py", line 317, in _strptime

    (bad_directive, format))

ValueError: 'z' is a bad directive in format '%a, %d %b %Y %H:%M:%S %z'

应该注意的是,这没有问题:


>>> from datetime import datetime

>>>

>>> str = 'Fri, 09 Apr 2010 14:10:50'

>>> fmt = '%a, %d %b %Y %H:%M:%S'

>>> datetime.strptime(str, fmt)

datetime.datetime(2010, 4, 9, 14, 10, 50)

但我坚持不懈"Fri, 09 Apr 2010 14:10:50 +0000"。我更愿意完全转换它而不用任何方式改变(或切片)它。


长风秋雁
浏览 647回答 2
2回答

慕尼黑5688855

看起来strptime并不总是支持%z。Python似乎只是调用C函数,并且strptime不支持%z您的平台。注意:从Python 3.2开始,它将始终有效。

料青山看我应如是

dateutil.parser.parse可以在Python 2中完成它pip install dateutil,它应该从python 3.2开始工作。
随时随地看视频慕课网APP

相关分类

Python
我要回答