python strptime子秒的正确格式

时间:2016-03-02 21:13:46

标签: python 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”以匹配我的日期时间格式?

3 个答案:

答案 0 :(得分:3)

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

以下是strftime() and strptime() behavior documentation

的链接

答案 1 :(得分:2)

这是正确的格式:

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

故障:

  • %H:小时(24小时制)作为零填充十进制数。
  • %M:分钟为零填充十进制数。
  • %S:其次是零填充十进制数。
  • %f:Microsecond为十进制数字,左侧为零填充。

答案 2 :(得分:1)

Per the documentation(如果您计划使用python日期和时间进行任何重要工作,我建议为该链接添加书签),零填充小时,分钟和秒的正确指令为{{ 1}},%H%M分别(没有加倍的字符)

此外,您的输入字符串包含微秒,因此您需要从输入中删除这些字符串或包含%S指令。

因此:%f