python - 日期时间不能低于 1000 年
问题描述
例如 print(days_diff((1000, 1, 1), (9999, 12, 31))) - 工作正常,但 print(days_diff((100, 1, 1), (9999, 12, 31))) -说 - “时间数据 '(100, 1, 1)' 与格式 '(%Y, %m, %d)' 不匹配”。如何解决?
from datetime import datetime as dt
def days_diff(d1, d2):
d1 = dt.strptime(str(d1), "(%Y, %m, %d)")
d2 = dt.strptime(str(d2), "(%Y, %m, %d)")
return abs((d2 - d1).days)
解决方案
您正在做的是将元组转换为 str,然后将其解析为日期时间。但是您也可以将(year, month, day)
元组直接传递给 datetime 构造函数:
from datetime import datetime as dt
def days_diff(d1, d2):
d1 = dt(*d1)
d2 = dt(*d2)
return abs((d2 - d1).days)
# result: 3615899
print( days_diff((100,1,1), (9999,12,31)) )```
推荐阅读
- javascript - 传递 onClick 处理程序并防止 React 中按钮的默认行为
- asp.net - Asp.net Identity 表关联问题
- javascript - 我不断收到“无法编译:意外令牌”{“”
- javascript - 如何在从电子快速启动开始的脚本中使用“从包中导入内容”
- node.js - 使用 NGINX 反向代理时如何将 HTTP 重定向到 HTTPS?
- javascript - addEventListeners 有什么问题
- flutter - 从预览页面发送照片到 GridView
- firebase - 可以在服务器上的 firestore 事务中修改应用程序状态吗?
- mule - 未知应用程序流显示为已停止,从而阻止 Mulesoft (3.9.1) 应用程序处理请求
- r - 将字符串转换为变量名并将其用于 R 循环中的绘图问题