【发布时间】:2018-12-30 00:38:33
【问题描述】:
ValueError: 时间数据 '2017-09-05 18:32:38.159+00' 与格式 '%Y-%m-%d %H:%M:%S.%f%z' 不匹配 我怎样才能适应“+00”?
【问题讨论】:
-
嘿,我的回答是否有助于解决这个问题。如果是,请标记为正确。
标签: python python-3.x datetime format valueerror
ValueError: 时间数据 '2017-09-05 18:32:38.159+00' 与格式 '%Y-%m-%d %H:%M:%S.%f%z' 不匹配 我怎样才能适应“+00”?
【问题讨论】:
标签: python python-3.x datetime format valueerror
我认为问题在于%f。它应该在左边补零。
%f 十进制数形式的微秒,左侧补零。 000000
正如下面的评论中所述,%z 期望格式为 +0000 或 -0000
%z UTC 偏移量,格式为 +HHMM 或 -HHMM(如果对象是 naive 则为空字符串)。
例如以下作品:
from time import strptime
string = strptime('2017-09-05 18:32:38.00159+0000', '%Y-%m-%d %H:%M:%S.%f%z')
【讨论】:
%z 匹配 +HHMM 或 -HHMM 形式的 UTC 偏移量。所以+00 需要改成+0000 之类的东西。 (例如datetime.datetime.strptime('2017-09-05 18:32:38.159000+0000', '%Y-%m-%d %H:%M:%S.%f%z'))。
+00。我认为它没有?另外我不确定“如果对象是天真的,则为空字符串”是什么意思。
+HHMM 或-HHMM 的形式。对于更灵活的日期时间字符串解析,OP 可以使用dateutil。然后dateutil.parser.parse('2017-09-05 18:32:38.159+00') 就可以了。
+00,这就是我不确定的原因。