2016-03-02 132 views
1

我datetime数据是这样的:蟒蛇strptime格式正确

2016-03-01 19:25:53.053404 

我想使用

datetime.strptime(date, "%Y-%m-%d %HH:%MM:%SS") 

但我得到这个错误:

ValueError: time data '2016-03-01 19:24:35.165425' does not match format '%Y-%m-%d %HH:%MM:%SS' 

如何我可以修改格式“%Y-%m-%d %HH:%MM:%SS”以匹配我拥有的日期时间格式吗?

+0

Thanks @bmcculley。我认为python的错误发生了改变,因为另一个问题是在6年前发布的,所以我找不到其他答案。 – apadana

回答

2

这是正确的格式:

datetime.strptime(date, '%Y-%m-%d %H:%M:%S.%f') 

击穿:

  • %H:小时(24小时制)作为零填充十进制数。
  • %M:分为零填充十进制数。
  • %S:第二个作为零填充十进制数。
  • %f:微秒作为十进制数,左侧填零。
3

您不需要在格式字符串中包含小时,秒和分钟两个字符; %S是“第二个作为零填充的十进制数字”,%H是“小时(24小时制)作为零填充的十进制数字”。等等。还值得注意的是,您完全缺少微秒符号%f)。你应该添加,如果你想让你的format_string工作。

这里是到strftime() and strptime() behavior documentation

1

Per the documentation(我建议书签链接,如果你打算做蟒蛇日期和时间任何显著的工作)的链接,零填充时,分正确的指令,和秒,是%H%M%S,分别为(无一倍字符)

此外,您的输入字符串包括微秒,所以你需要或者删除这些从输入或包括%f指令为好。

因此:datetime.strptime(date, '%Y-%m-%d %H:%M:%S.%f')