我试图使用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
是一种相对简单的解析日期和时间的方法。我认为它不可能以一种与你的例子一致的方式解析你的例子。
但是,您可能会发现一些更强大的库至少能够解析您给出的一些示例。我建议你看一下:dateparser
或dateutil
。