为什么 Python strptime 在使用 %Y%m%d 时会跳过字符串中缺失的 0?
Why does Python strptime skip missing 0s in a string when using %Y%m%d?
我正在尝试使用 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')
这是预期的行为吗?当其中一个指令中的字符串缺少初始 0 时,有没有办法让 strptime
引发错误?
strptime
是一种相对简单的解析日期和时间的方法。我认为不可能让它以与您的示例一致的方式解析您的示例。
但是,您可能会发现一些更强大的库至少能够解析您提供的一些示例。我建议你看看:dateparser
or dateutil
.
我正在尝试使用 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')
这是预期的行为吗?当其中一个指令中的字符串缺少初始 0 时,有没有办法让 strptime
引发错误?
strptime
是一种相对简单的解析日期和时间的方法。我认为不可能让它以与您的示例一致的方式解析您的示例。
但是,您可能会发现一些更强大的库至少能够解析您提供的一些示例。我建议你看看:dateparser
or dateutil
.