gpt4 book ai didi

Python datetime.strptime - ValueError : time data does not match format

转载 作者:太空宇宙 更新时间:2023-11-04 00:24:06 25 4
gpt4 key购买 nike

我是 Python 新手。我尝试编写将从文件读取并将其写入数据库的程序。我的代码有一部分:

import datetime

format = '[%d/%b/%Y:%I:%M:%S '
mytime = '[29/Oct/2017:13:11:38 '
now = datetime.datetime.strptime(mytime, format)

当我运行脚本时出现这个错误:

 now = datetime.datetime.strptime(mytime, format)
File "/usr/lib/python2.7/_strptime.py", line 332, in _strptime
(data_string, format))
ValueError: time data '[29/Oct/2017:13:11:38 ' does not match format '[%d/%b/%Y:%I:%M:%S '

我不明白这个错误。它匹配格式。没有额外的空间或类似的东西。我使用了这两行代码

format = '[%d/%b/%Y:%I:%M:%S '
now = datetime.datetime.strptime(mytime, format)

在另一个程序中,它工作正常。问题在哪里?

最佳答案

查看the docs , %I 以 AM/PM 格式匹配时间的小时数,这意味着有效值范围从 01 到 12。您有 13(下午 1 点)

我猜你需要使用 %H

import datetime

mytime = '[29/Oct/2017:13:11:38 '
fmt = '[%d/%b/%Y:%H:%M:%S '
now = datetime.datetime.strptime(mytime, fmt)
print("now: %s" % now.strftime('%Y-%m-%d %H:%M:%S'))

打印:

now: 2017-10-29 13:11:38

检查这个:

fmt = '[%d/%b/%Y:%I:%M:%S '

for test in range(1, 24):
mytime = '[29/Oct/2017:%02d:11:38 ' % test
now = datetime.datetime.strptime(mytime, fmt)
print("now: %s" % now.strftime('%Y-%m-%d %H:%M:%S'))

将“正常”工作(我引用是因为 12 被假定为午夜)直到 test 命中 13:

now: 2017-10-29 01:11:38
now: 2017-10-29 02:11:38
now: 2017-10-29 03:11:38
now: 2017-10-29 04:11:38
now: 2017-10-29 05:11:38
now: 2017-10-29 06:11:38
now: 2017-10-29 07:11:38
now: 2017-10-29 08:11:38
now: 2017-10-29 09:11:38
now: 2017-10-29 10:11:38
now: 2017-10-29 11:11:38
now: 2017-10-29 00:11:38
Traceback (most recent call last):
File "./stack_096.py", line 12, in <module>
now = datetime.datetime.strptime(mytime, fmt)
File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/_strptime.py", line 500, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "/usr/local/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/_strptime.py", line 337, in _strptime
(data_string, format))
ValueError: time data '[29/Oct/2017:13:11:38 ' does not match format '[%d/%b/%Y:%I:%M:%S '

关于Python datetime.strptime - ValueError : time data does not match format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48052962/

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