微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决为什么在使用 %Y%m%d 时 Python strptime 会跳过字符串中缺少的 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')

这是预期的行为吗?当字符串在其中一个指令中缺少初始 0 时,有没有办法让 strptime 引发错误

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。