2018-02-06T14:45:03.0040554Z
无法将此字符串转换为日期时间。
datetime.strptime('2018-02-06T14:45:03.0040554Z', '%Y-%m-%dT%H:%M:%fZ')
我正在尝试这个并且它不起作用。
datetime.strptime('2018-02-06T14:45:03Z', '%Y-%m-%dT%H:%M:%fZ')
这项工作适用于上述时间格式。
但我从第三方API获取此时间字符串,因此无法更改其格式。
答案 0 :(得分:4)
如果您可以使用 dateutil 模块,则可以执行此操作。
from dateutil import parser
print parser.parse('2018-02-06T14:45:03.0040554Z')
<强>输出:强>
2018-02-06 14:45:03.004055+00:00
使用日期时间。看起来你错过了秒参数,微秒需要6你有7。
import datetime
print datetime.datetime.strptime('2018-02-06T14:45:03.004055Z', '%Y-%m-%dT%H:%M:%S.%fZ')
print datetime.datetime.strptime('2018-02-06T14:45:03Z', '%Y-%m-%dT%H:%M:%SZ')
<强>输出强>:
2018-02-06 14:45:03.004055
2018-02-06 14:45:03
答案 1 :(得分:1)
一种方法是使用pandas
:
import pandas as pd
pd.to_datetime('2018-02-06T14:45:03.0040554Z').to_pydatetime()
'2018-02-06 14:45:03.004055'
答案 2 :(得分:0)
您的输入格式非常奇怪,因为它在第二个分数中有7个数字
看看旧问题:How do I convert a date string containing 7 digits in milliseconds into a date in Python
您可以拆分/重新加入字符串并使用'%Y-%m-%dT%H:%M:%S.%fZ'
或使用dateutil.parser.parse