Python 日期时间解析

Python date time parsing

为什么会失败:

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 Hour (24-hour clock) as a zero-padded decimal number. 00, 01, …, 23
  • %I Hour (12-hour clock) as a zero-padded decimal number. 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, 0, 7)

或使用 %H 作为 24 小时制,在这种情况下您可能希望删除 %p,因为它在这种情况下毫无意义

>> datetime.datetime.strptime(' Tuesday 01 September 2020 : 00:07', ' %A %d %B %Y : %H:%M')  
datetime.datetime(2020, 9, 1, 0, 7)