如何在java.util.Calendar中设置日历开始日期和结束日期

时间:2014-10-10 11:46:47

标签: java calendar jodatime

有没有办法在java.util.Calendar中设置日历开始日期和结束日期。 比如说,例如,默认情况下,java.util.Calendar的开始日期是1月1日,日历结束日期是12月31日。我有一些具体的案例,我希望日历从1月5日开始到12月28日结束。

即使可以在java中使用其他日期时间库,这对我来说也是有用的。 任何想法/建议如何设置日历的开始日期和结束日期。

1 个答案:

答案 0 :(得分:0)

正如文档所说,java.util.Calendar类用于转换特定时刻,而不是表示时间跨度。实际上,与Java捆绑在一起的旧日期时间类(例如java.util.Date和.Calendar)缺少一段时间的任何表示。

此外,这些课程在设计和实施方面都非常麻烦和令人困惑,存在缺陷。避免他们。使用Joda-Time或Java 8中内置的新java.time包(受Joda-Time启发,由JSR 310定义)。

Joda-Time提供了各种定义时间跨度的方法:间隔,周期和持续时间。

DateTimeZone timeZone = DateTimeZone.forID( "America/Montreal" );
DateTime start = new DateTime( 2014, 1, 5, 0, 0, 0, timeZone );
DateTime stop = new DateTime( 2014, 12, 28, 0 , 0, 0, timeZone );
Interval interval = new Interval( start, stop );
boolean containsNow = interval.contains( DateTime.now() );