使用日期和日历

时间:2012-11-23 12:33:06

标签: java date calendar

我有一个日期选择器,用户选择一个日期,然后选择一个复选框,说明他希望从哪个时期获取日期。例如:

用户选择11月的1.并选择复选框“月”,在这种情况下,结束日期将增加1,即使这个声音很简单,它也会慢慢开始让我烦恼!

问题是Java没有一个很好的日期对象,适用于这种事情,所以我认为我会使用日历,但不容易增加日历日期,例如以下示例:

endDate.set(startDate.YEAR, startDate.MONTH+1, startDate.DATE);
理论上,这会使月份比起始日期增加一个。如果您在12月份将月份增加1,那么整数月份的回报率为startDate.DATE;startDate.Year;

我的问题是,有没有更简单的方法来做到这一点?我可以制作大量的If句子,但我真的觉得它有点多余。

3 个答案:

答案 0 :(得分:2)

使用add的{​​{1}}方法。

java.util.Calendar

答案 1 :(得分:1)

此处的标准推荐是查看Joda-Time(有关详细信息,请参阅here)。它是一个更加一致/能力更强的API,没有任何线程问题困扰标准的Java日期/格式化API,因此被广泛使用和接受。

就上述你想要的东西而言,我建议如下:

LocalDate d = ...
LocalDate nd = d.plusMonths(1);

以上将正确处理月/年翻转。

答案 2 :(得分:1)

您可以使用Calendar.add()向日历值添加值,例如Calendar.add(Calendar.MONTH, 1)这会增加一个月,并考虑到1月份是在12月之后。