可能重复:
Anyone know a simple way using java calendar to subtract X days to a date?
我需要在给定日期减去365天(givenDate) -
Calendar calendar = Calendar.getInstance();
calendar.setTime(givenDate);
calendar.add(Calendar.DATE, -365);
我是对的吗?
答案 0 :(得分:13)
Calendar.DAY_OF_YEAR
是减去天数的正确方法
您还可以使用
减去一年(记入闰年)Calendar calendar = Calendar.getInstance();
calendar.setTime(givenDate);
calendar.add(Calendar.YEAR, -1);
答案 1 :(得分:4)
这是减去天数的正确方法。
请注意,由于闰日,365天并不总是等于一年。 calendar.add(Calendar.YEAR, -1)
会正确减去一年。
您还可以使用Joda Time - 库而不是java.util.Date
和java.util.Calendar
。 Joda Time是处理时间和日期的更好的API。
答案 2 :(得分:1)
我认为它不会有所不同,但我会使用Calendar.DAY_OF_YEAR作为字段。
答案 3 :(得分:0)
如果您尝试 严格 减去365天,那么是的,那就是这样做的。但是,如果你正在尝试多年,那可能因闰年而无效。
答案 4 :(得分:0)
结帐Veyder-time。它是java.util.Calendar的一个简单而强大的替代方法,并且具有添加和减去日期和年份的简单方法,以及许多其他方法。