检查日期是否超过 10 年且超过 20 年
我正在尝试签入Java 8,如果日期早于10年,早于20年。我用And和年复一年作为论据。Date.before()
Date.after()
currentDate-10
currentDate-20
有人可以建议什么最干净的方式来获得一个日期,这是10岁和20年的日期格式,以传递它在我的和方法?before()
after()
我正在尝试签入Java 8,如果日期早于10年,早于20年。我用And和年复一年作为论据。Date.before()
Date.after()
currentDate-10
currentDate-20
有人可以建议什么最干净的方式来获得一个日期,这是10岁和20年的日期格式,以传递它在我的和方法?before()
after()
您可以使用java.time.LocalDate来执行此操作。示例:如果您需要检查 01/01/2005 是否介于该持续时间之间,则可以使用
LocalDate date = LocalDate.of(2005, 1, 1); // Assign date to check
LocalDate today = LocalDate.now();
if (date.isBefore(today.minusYears(10)) && date.isAfter(today.minusYears(20))) {
//Do Something
}
使用日历,
您可以轻松获得当前日期的10年日期和20年的日期。
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, -10);
Date d1 = calendar.getTime();
calendar.add(Calendar.YEAR, -10);
Date d2 = calendar.getTime();
当您使用Java 8时,您也可以使用LocalDate。
LocalDate currentDate = LocalDate.now();
Date d1 = Date.from(currentDate.minusYears(10).atStartOfDay(ZoneId.systemDefault()).toInstant());
Date d2 = Date.from(currentDate.minusYears(20).atStartOfDay(ZoneId.systemDefault()).toInstant());
为了进行比较,您可以使用您所说的和方法。date.after()
date.before()
if(date.after(d1) && date.before(d2)){ //date is the Date instance that wants to be compared
////
}
和 方法也在 和 中实现。您可以在这些实例中使用这些方法,而无需转换为实例。before()
after()
Calendar
LocalDate
java.util.Date