You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中以YYYY-MM-DD格式计算两个日期的差值

如何将datetime差值转换为YYYY-MM-DD格式

首先要明确:datetime.datetime相减得到的timedelta对象代表的是时间间隔,而YYYY-MM-DD是具体日期的格式,两者概念不同。但可以通过两种方式实现类似需求:

1. 将时间间隔转换为“年-月-日”的近似表示

因为一年、一个月的天数不固定,只能做近似换算(比如按每年365天、每月30天计算):

import datetime

d1 = datetime.datetime(2695, 7, 28)
d2 = datetime.datetime(4714, 11, 24)
d3 = d2 - d1

total_days = d3.days
years = total_days // 365
remaining_days = total_days % 365
months = remaining_days // 30
days = remaining_days % 30

# 格式化为YYYY-MM-DD样式的字符串
formatted_diff = f"{years:04d}-{months:02d}-{days:02d}"
print(formatted_diff)

注意:这种方式是近似值,无法匹配实际历法中的闰年、不同月份天数差异。

2. 将基准日期加时间差得到具体日期后格式化

如果你实际需求是获取某个基准日期加上该时间差后的具体日期(比如示例中的d2),直接格式化目标日期即可:

import datetime

d1 = datetime.datetime(2695, 7, 28)
d2 = datetime.datetime(4714, 11, 24)

# 格式化d2为YYYY-MM-DD格式
formatted_date = d2.strftime("%Y-%m-%d")
print(formatted_date)

如果需要基于其他基准日期(比如d1)计算,可使用d1 + d3得到新日期后再调用strftime格式化。


内容的提问来源于stack exchange,提问作者Danan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:05:28