ValueError: time data '2015-06-29-16:27:07.157+00:00I-----' does not match

ValueError: time data '2015-06-29-16:27:07.157+00:00I-----' does not match

我想我遗漏了一些东西,但我确实尝试了日期时间格式的所有可能组合。这是我最近的一次尝试,它抛出了同样的错误:

datetime.strptime('2015-06-29-16:27:07.157+00:00I-----', "%Y-%m-%d-%H:%M:%S+%I-----")

如有任何建议,我们将不胜感激

由于您的字符串格式不是有效的日期时间,您可以直接将 00:00 放在 strptime 格式上:

>>> datetime.strptime('2015-06-29-16:27:07.157+00:00I-----', "%Y-%m-%d-%H:%M:%S.%f+00:00I-----")
datetime.datetime(2015, 6, 29, 16, 27, 7, 157000)

有关详细信息,请查看 https://docs.python.org/2/library/datetime.html

问题是格式 00:00 作为时区格式不是 strptime 可以使用的:它需要类似 (+/-)0000 的格式,不带冒号。所以以下确实有效:

>>> datetime.strptime('2015-06-29-16:27:07.157+0000I-----', "%Y-%m-%d-%H:%M:%S.%f%zI-----")
datetime.datetime(2015, 6, 29, 16, 27, 7, 157000, tzinfo=datetime.timezone.utc)

但您需要删除时区部分中的 :