减去Calendar对象中的天数

时间:2010-04-12 16:26:18

标签: java datetime calendar

  

可能重复:
  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);  

我是对的吗?

5 个答案:

答案 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.Datejava.util.Calendar。 Joda Time是处理时间和日期的更好的API。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

结帐Veyder-time。它是java.util.Calendar的一个简单而强大的替代方法,并且具有添加和减去日期和年份的简单方法,以及许多其他方法。