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

Gus*_*ssi 44 python datetime

给定这个字符串:"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'
Run Code Online (Sandbox Code Playgroud)

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

>>> 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)
Run Code Online (Sandbox Code Playgroud)

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

cla*_*hey 40

看起来strptime并不总是支持%z.Python似乎只是调用C函数,并且strptime不支持%z您的平台.

注意:从Python 3.2开始,它将始终有效.

  • 这是不正确的.`strptime()`是用纯Python实现的.与`strftime()`不同; 它在所有平台上的行为都相同.它不适用于任何平台上的Python 2. (3认同)
  • 打败我吧!查看:http://bugs.python.org/issue6641 (2认同)