gpt4 book ai didi

Python解析日期格式,忽略部分字符串

转载 作者:太空狗 更新时间:2023-10-29 18:06:53 28 4
gpt4 key购买 nike

我想'以这种格式解析日期,但忽略部分字符串。 'Wed, 27 Oct 1770 22:17:00 GMT' 从我收集到的信息来看,datetime 不能很好地支持时区。这很好,我真的只想忽略字符串的时区部分,而不必对其进行字符串操作。有什么我可以用下面的东西替换 %Z 来说“这里有任何字符串”并这样解析日期吗?另外,我不明白为什么它会解析 PST、GMT 而不是 EST 等时区。它似乎在任何情况下都没有附加 tzinfo,不确定它真正在寻找 %Z 部分的字符串类型。

>>> import datetime
>>> y = datetime.datetime.strptime('Wed, 27 Oct 1770 22:17:00 GMT', '%a, %d %b %Y %H:%M:%S %Z')
>>> y = datetime.datetime.strptime('Wed, 27 Oct 1770 22:17:00 PST', '%a, %d %b %Y %H:%M:%S %Z')
>>> y = datetime.datetime.strptime('Wed, 27 Oct 1770 22:17:00 EST', '%a, %d %b %Y %H:%M:%S %Z')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/brazil-pkg-cache/packages/Python/Python-2.5.1.17.1/RHEL5_64/DEV.STD.PTHREAD/build/lib/python2.5/_strptime.py", line 331, in strptime
(data_string, format))
ValueError: time data did not match format: data=Wed, 27 Oct 1770 22:17:00 EST fmt=%a, %d %b %Y %H:%M:%S %Z

注意:dateutil 对我来说不是一个选项,我想支持多种格式并且不能让 dateutil 意外地错误地解释日期。 (即 dateutil 在看到诸如 01/02/2010、2 月 1 日或 1 月 2 日之类的日期时似乎会进行猜测)。我基本上只想尝试接受我在订单中指定的格式,直到找到匹配项。

最佳答案

您真的看过 dateutil 的文档吗?

dateutil.parser.parse() 确实有参数 let you control其格式猜测器中的优先级,它还有一个 ignoretz=True 参数。

如果这还不够,您可能可以重写一些类来实现您自己的优先规则。

当然,如果没有,您可能不得不求助于字符串解析,因为 Python 的 strptime() 实现调用底层 C 实现来解析时区名称。 (我不知道为什么它不理解你的 EST,但它可能是系统范围的,在某些系统上不是问题)

关于Python解析日期格式,忽略部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4053924/

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