gpt4 book ai didi

python - 如何要求在 Python 验证期间将时间戳补零?

转载 作者:太空狗 更新时间:2023-10-29 18:08:04 24 4
gpt4 key购买 nike

我正在尝试验证应该包含格式为 ISO 8601 的时间戳的字符串(常用于 JSON)。

Python 的 strptime 在验证零填充方面似乎非常宽容,请参见下面的代码示例(请注意小时缺少前导零):

>>> import datetime
>>> s = '1985-08-23T3:00:00.000'
>>> datetime.datetime.strptime(s, '%Y-%m-%dT%H:%M:%S.%f')
datetime.datetime(1985, 8, 23, 3, 0)

例如,它优雅地接受了一个小时未被零填充的字符串,并且不会像我期望的那样抛出 ValueError 异常。

有什么方法可以强制 strptime 来验证它是否被零填充?或者在 Python 的标准库中是否有任何其他内置函数可以这样做?

我想避免为此编写自己的 regexp

最佳答案

已经有一个答案说用 Python strptime() 解析 ISO8601 或 RFC3339 日期/时间是不可能的:How to parse an ISO 8601-formatted date?所以,为了回答你的问题,标准 Python 库中没有办法可靠地解析这样的日期。关于正则表达式建议,日期字符串如

2020-14-32T45:33:44.123

会得到一个有效的日期。有很多 Python 模块(如果您在 https://pypi.python.org 上搜索“iso8601”),但是构建完整 ISO8601 验证器需要闰秒、可能的时区偏移值列表和许多更多。

关于python - 如何要求在 Python 验证期间将时间戳补零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45595943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com