【问题标题】:datetime.strptime() conversion failure for year 1000010000 年的 datetime.strptime() 转换失败
【发布时间】:2020-09-16 23:12:23
【问题描述】:

以下 python 代码在 12-31-9999 之前运行良好。

将日期更改为 01-01-10000 后出现错误(请参阅随附的屏幕截图)

from datetime import datetime
import time
 
          
myNewDate = "12-31-9999"
            
myNewDateTime = datetime.strptime(myNewDate, '%m-%d-%Y').date()
print (myNewDateTime)

这是屏幕截图:

【问题讨论】:

标签: python date datetime strptime


【解决方案1】:

根据docs,仅支持 4 位数年份。

年份受 1989 C 标准限制。

【讨论】:

  • 另外,tools.ietf.org/html/rfc3339 只允许 4 位数字 [在较新的互联网标准中编码日期的推荐方法的标准]。预测 8000 年的日期没有多大意义。
【解决方案2】:

%Y 表示 4 位数的年份,最后一个 0 与模式不匹配。您不能使用 python 日期时间来处理 9999 之后的年份:https://docs.python.org/3/library/datetime.html#datetime.MAXYEAR

【讨论】:

    猜你喜欢
    • 2020-02-02
    • 1970-01-01
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多