问题描述
这为什么失败:
datetime.datetime.strptime(
date_string,' %A %d %B %Y : %I:%M %p')
ValueError("time data ' Tuesday 08 September 2020 : 00:07 AM' does not match format ' %A %d %B %Y : %I:%M %p'")
这可行时:
datetime.datetime.strptime(' Wednesday 02 September 2020 : 2:54 AM',' %A %d %B %Y : %I:%M %p')
我认为这必须与00
小时有关,但我确切不知道这是什么。
解决方法
来自datetime
文档:
- %H小时(24小时制),为零填充的十进制数字。 00,01,…,23
- %I小时(12小时制),为零填充的十进制数字。 01,02,…,12
因此,您需要输入12:07 am
这样的时间才能有效(12小时制中没有0点钟)
>> datetime.datetime.strptime(' Tuesday 01 September 2020 : 12:07 AM',' %A %d %B %Y : %I:%M %p')
datetime.datetime(2020,9,1,7)
或者使用%H
来保持24小时制,在这种情况下,您可能希望放弃%p
,因为在这种情况下它毫无意义
>> datetime.datetime.strptime(' Tuesday 01 September 2020 : 00:07',' %A %d %B %Y : %H:%M')
datetime.datetime(2020,7)