【问题标题】:python : value error - timedate format errorpython:值错误-时间日期格式错误
【发布时间】:2017-02-02 18:38:53
【问题描述】:

我收到以下错误:

ValueError: time data 'Feb 1, 2017  0:03 pm' does not match format '%b %d, %Y %I:%M %p'

代码如下:

from datetime import datetime 

latest_datetime = 'Feb 1, 2017  0:03 pm'    
datetime_obj = datetime.strptime(latest_datetime, "%b %d, %Y %I:%M %p")

我无法弄清楚为什么会出现错误。

【问题讨论】:

    标签: python datetime strptime python-datetime


    【解决方案1】:

    12 小时制的时钟没有0 小时; %I 只会匹配 1 到 12。您的时间戳中包含不可能的时间:

    0:03 pm
    

    来自strftime() and strptime() Behavior documentation

    %I
    小时(12 小时制),用零填充十进制数表示。
    01, 02, ..., 12

    假设0 真的是12,您可以通过将' 0:' 替换为'12:' 来修复此问题(注意前导空格是零!):

    >>> from datetime import datetime
    >>> latest_datetime = 'Feb 1, 2017  0:03 pm'
    >>> datetime.strptime(latest_datetime.replace(' 0:', '12:'), "%b %d, %Y %I:%M %p")
    datetime.datetime(2017, 2, 1, 12, 3)
    

    年份和小时之间是否有一个或两个空格并不重要,无论哪种方式都会解析字符串。

    【讨论】:

    • 你是对的,我在控制台上进行了错误/仓促的诊断。
    猜你喜欢
    • 2017-11-16
    • 2018-06-18
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多