为什么Python strptime在使用%Y%m%d时跳过字符串中缺失的0 ?



我试图使用datetime.datetime.strptime来确保字符串具有%Y%m%d-%H%M%S的格式。然而,strptime不考虑%Y或任何其他指令中的0填充格式。例如,在下面的代码中,只有最后一行会引发错误。然而,我希望只有第一个strptime调用可以工作。

from datetime import datetime
datetime.strptime('20101124-134523', '%Y%m%d-%H%M%S')
datetime.strptime(  '101124-134523', '%Y%m%d-%H%M%S')
datetime.strptime('20101124-34523', '%Y%m%d-%H%M%S')
datetime.strptime('20101124-3453', '%Y%m%d-%H%M%S')
datetime.strptime('20101124-343', '%Y%m%d-%H%M%S')
datetime.strptime(   '01124-134523', '%Y%m%d-%H%M%S')

这是预期的行为吗?是否有一种方法可以使strptime在字符串缺少其中一个指令中的初始0时引发错误?

strptime是一种相对简单的解析日期和时间的方法。我认为它不可能以一种与你的例子一致的方式解析你的例子。

但是,您可能会发现一些更强大的库至少能够解析您给出的一些示例。我建议你看一下:dateparserdateutil

最新更新