我无法解析价值+02:00
以下版本适用于时区-0500
:
result = datetime.datetime.strptime('2017-01-12T14:12:06.000-0500','%Y-%m-%dT%H:%M:%S.%f%z')
print(result)
2017-01-12 14:12:06-05:00
如果时区为-05:00
,则无法正常工作:
result = datetime.datetime.strptime('2017-01-12T14:12:06.000-05:00','%Y-%m-%dT%H:%M:%S.%f%z')
print(result)
2017-01-12 14:12:06-05:00
答案 0 :(得分:2)
-05:00
模块不支持格式datetime
的时区,即冒号。
但您可以使用dateutil.parser
或pandas
:
from dateutil import parser
import pandas as pd
x = '2017-01-12T14:12:06.000-05:00'
res1 = parser.parse(x)
res2 = pd.to_datetime(x).to_pydatetime()
print(res1) # 2017-01-12 14:12:06-05:00
print(res2) # 2017-01-12 19:12:06
答案 1 :(得分:1)
documentation for strptime,%z
格式说明符:
UTC offset in the form +HHMM or -HHMM
如果我在Python shell(Python 3.6.5)中运行第二个示例,我会得到一个ValueError:
ValueError: time data '2017-01-12T14:12:06.000-05:00' does not match format '%Y-%m-%dT%H:%M:%S.%f%z'
基于此,:
in的偏移无效。您可以自己处理,或使用其他解析库