【问题标题】:Error in the date time format in PythonPython中的日期时间格式错误
【发布时间】:2017-11-16 05:47:48
【问题描述】:

我的 Python 代码显示日期时间格式错误。这种日期的正确格式应该是什么:'09-Jul-11 12:00:00 AM'? 日期被视为文本文件中的字符串。 这是我用于日期和时间的代码。

date=datetime.datetime.strptime(date, "%d-%B-%y %H:%M:%S %p")

这是我得到的错误。

ValueError: time data '09-Jul-11 12:00:00 AM' does not match format '%d-%B-%y %H:%M:%S %p'

P.S.:我使用的是 Python 3。

【问题讨论】:

标签: python python-3.x datetime date-format strptime


【解决方案1】:

月份和小时的格式错误。使用%b 代替%B(月份作为区域设置的缩写名称[1])和%I 代替%H(12 小时格式)。

date=datetime.datetime.strptime(date, "%d-%b-%y %I:%M:%S %p")

[1]:感谢 Ricky Han 的评论

【讨论】:

  • %b 月份作为语言环境的缩写名称。一月、二月、...、十二月(en_US);
【解决方案2】:

正确的格式字符串是:"%d-%b-%y %I:%M:%S %p"%b 表示月份缩写,%I 表示 12 小时制)。

【讨论】:

    【解决方案3】:

    Online Demo %b 应该用于缩写月份名称。您使用了 %B 用于完整月份名称。

    %H 用于小时,使用 24 小时制(00 到 23)。%I 用于小时,使用 12 小时制(01 到 12)

    import datetime
    date = '09-Jul-11 12:00:00 AM'
    date=datetime.datetime.strptime(date, "%d-%b-%y %I:%M:%S %p")
    print(date)
    

    【讨论】:

    • @Błotosmętek 谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 2013-12-16
    • 2013-07-09
    • 2018-04-17
    • 2018-06-18
    相关资源
    最近更新 更多