gpt4 book ai didi

python - 如何用分号后没有指定秒数的 Z 字母解析日期时间

转载 作者:行者123 更新时间:2023-12-05 06:29:50 24 4
gpt4 key购买 nike

我正在解析这个程序的日志,没有访问程序的源代码。

日志在日志记录中包含一个有趣的事件时间戳 –2018-11-02T06:25:03870000Z。这对我来说很奇怪,我不知道它有多正确。但我倾向于认为 03974200Z 描述了秒 (%s) 部分,我想尽可能多地从这条记录中收集信息。

我正在尝试从 Python 3.7 中解析这个示例,如下所示:

d = '2018-11-02T06:25:03870000Z'
dt.datetime.strptime(d, '%Y-%m-%dT%H:%M:%S')

它会产生一个可预测的错误:

Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/_strptime.py", line 577, in _strptime_datetime
tt, fraction, gmtoff_fraction = _strptime(data_string, format)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/_strptime.py", line 362, in _strptime
data_string[found.end():])
ValueError: unconverted data remains: 870000Z

更新:我对此有肮脏的解决方案,但如果有比这更好的方法来做这样的操作:

sc = d.split(':')[-1][:2]
dd = d.split(':')
en = ':'.join(dd[:-1])
en += ':' + sc
>> en
'2018-11-02T06:25:03'

问题:

  1. 如何正确解析这样的日期时间(示例中确定03作为秒的一部分)?
  2. (可选) 同上。但是日志中的这个日期时间示例是否正确(就 ISO 或其他方面而言)?

最佳答案

Z 指定祖鲁时区(UTC 或 GMT),秒以整秒 (03) 后跟微秒 (870000) 给出,因此您可以完全使用以下方法解析日期:

d = '2018-11-02T06:25:03870000Z'
dt.datetime.strptime(d, '%Y-%m-%dT%H:%M:%S%fZ')

关于python - 如何用分号后没有指定秒数的 Z 字母解析日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53121266/

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