>>> datetime.strptime('2014-02-13 11:55:00 -0800', '%Y-%m-%d %H:%M:%S %z')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_strptime.py", line 317, in _strptime
(bad_directive, format))
ValueError: 'z' is a bad directive in format '%Y-%m-%d %H:%M:%S %z'
我知道它不受支持,但不知道为什么。看来支持这一点并不难。和 '与 UTC 的偏移 http://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC' 不像时区缩写那么含糊。
直到 Python 3.2,Python 的datetime
module had no timezone()
object。它通过提供一个来支持提供时区的第三方库datetime.tzinfo()抽象基类 https://docs.python.org/2/library/datetime.html#tzinfo-objects,但不包含时区对象。如果没有时区对象,也不支持解析时区偏移。
从 Python 3.2 开始,z
支持,因为该版本(及更高版本)添加了datetime.timezone() type https://docs.python.org/3/library/datetime.html#timezone-objects:
>>> import datetime
>>> datetime.datetime.strptime('2014-02-13 11:55:00 -0800', '%Y-%m-%d %H:%M:%S %z')
datetime.datetime(2014, 2, 13, 11, 55, tzinfo=datetime.timezone(datetime.timedelta(-1, 57600)))
>>> _.tzinfo
datetime.timezone(datetime.timedelta(-1, 57600))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)