减去Calendar对象中的天数

可能重复:
有人知道使用java日历将X天减去日期的简单方法吗?

我需要在给定日期减去365天(givenDate) –

Calendar calendar = Calendar.getInstance(); calendar.setTime(givenDate); calendar.add(Calendar.DATE, -365); 

我对吗?

Calendar.DAY_OF_YEAR是减去天数的正确方法

您还可以使用减去一年(考虑到闰年)

 Calendar calendar = Calendar.getInstance(); calendar.setTime(givenDate); calendar.add(Calendar.YEAR, -1); 

这是减去天数的正确方法。

请注意,由于闰日,365天并不总是等于一年。 calendar.add(Calendar.YEAR, -1)将正确减去一年。

您也可能希望使用Joda Time -library而不是java.util.Datejava.util.Calendar 。 Joda Time是处理时间和日期的更好的API。

我不认为它会有所不同,但我会使用Calendar.DAY_OF_YEAR作为字段。

如果你试图严格减去365天,那么,那就是这样做的。 但是,如果你正在尝试多年,那可能因闰年而无效。

查看Veyder时间 。 它是java.util.Calendar的简单而强大的替代方案,并且具有用于添加和减去日期和年份的简单方法,以及许多其他方面。