比较两个日期范围之间的日期,即java中的.fromDate和toDate

时间:2016-03-10 01:40:55

标签: java

如何检查给定日期是否介于两个日期之间,但不应检查给定日期的时间。

我曾尝试过,但它也会检查时间范围。

有人能帮助我了解这个吗?

TIA。,

2 个答案:

答案 0 :(得分:0)

java.time

与早期版本的Java捆绑在一起的旧日期时间类已被Java 8及更高版本中内置的java.time框架所取代。

LocalDate类代表一个仅限日期的值,没有时间和没有时区。

LocalDate start = LocalDate.of( 2016 , 1 , 1 ) ;
LocalDate stop = LocalDate.of( 2016 , 1 , 23 ) ;

要获取当前日期,请指定时区。在任何特定时刻,今天的日期因时区而异。例如,巴黎的新日早些时候比蒙特利尔早了。

LocalDate today = LocalDate.now( ZoneId.of( "America/Montreal" ) );

我们可以使用isEqualisBeforeisAfter方法进行比较。在日期时间工作中,我们通常使用半开放方法,其中一段时间​​的开始是包含,而结尾是独占

Boolean containsToday = ( ! today.isBefore( start ) ) && ( today.isBefore( stop ) ) ;

ThreeTen-Extra项目

可以通过将ThreeTen-Extra项目的jar添加到项目中来扩展java.time框架。特别是你可能会发现Interval类很方便。

答案 1 :(得分:-1)

您可以使用Apache Commons库中的DateUtils.truncate。

示例:

DateUtils.truncate(new Date(), java.util.Calendar.DAY_OF_MONTH)

另一种选择可能是使用JODA-TIME为您打开本地日期的API

示例:

DateTime first = ...;
DateTime second = ...;

LocalDate firstDate =       first.toLocalDate();
LocalDate secondDate = second.toLocalDate();

然后你可以将它们与库中的JODA-TIME compareTo()或after()进行比较:)