减去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.Date
和java.util.Calendar
。 Joda Time是处理时间和日期的更好的API。
我不认为它会有所不同,但我会使用Calendar.DAY_OF_YEAR作为字段。
如果你试图严格减去365天,那么,那就是这样做的。 但是,如果你正在尝试多年,那可能因闰年而无效。
查看Veyder时间 。 它是java.util.Calendar的简单而强大的替代方案,并且具有用于添加和减去日期和年份的简单方法,以及许多其他方面。