从日期时间减去 1 年

Posted

技术标签:

【中文标题】从日期时间减去 1 年【英文标题】:Subtract 1 year from datetime 【发布时间】:2011-02-14 04:07:47 【问题描述】:

我已经看到很多关于如何从另一个日期时间中减去一个日期时间以及如何在一个日期时间上添加年份的信息。但是下面的内容让我很头疼....

当用户插入一条记录时,一个名为 subdate 且值为 datetime.now 的隐藏字段会添加到数据库中。

然后我需要一个“旧记录”页面,列出所有超过 1 年的条目,并希望使用类似的东西(但使用减法);

(DateTime.Now.AddYears(1))

但没有可用的 SubtractYears?为什么?

请告诉我我是如何达到相同结果的?

【问题讨论】:

【参考方案1】:
DateTime.Now.AddYears(-1)

来自documentation:

几年。 value 参数可以是负数或正数。

【讨论】:

它总是简单的事情:) 相信它:就是这样。一个简单问题的简单解决方案……程序员的梦想。 它还简化了年龄检查(尽管没有计算年龄),因为您可以测试 DateTime.Now.AddYears(-18) >birthDate,例如。【参考方案2】:
now = datetime.now()
last_year = (now.year - 1)
datestr = (datetime.strptime(str(now.year - 1), "%Y")).strftime("%y")
print(f"Last Year: datestr")

输出将是:

去年:20

如果您更喜欢四位数年份,请将 %y 更改为 %Y

【讨论】:

以上是关于从日期时间减去 1 年的主要内容,如果未能解决你的问题,请参考以下文章

Mongodb - 减去日期

如何用Python在指定日期上减去7天?

如何从日期时间中减去秒并进行比较?

如何从普通日期中减去天数?

Java 根据出生日期获得年龄

从雪花中的日期时间减去 2 小时