如何检查用户输入的日期距离 java 中的当前日期已超过 32 天
How to check user entered date is greater than 32 days from current date in java
我想根据条件验证用户输入的日期。条件是用户输入的新日期应大于 32 天。如何做同样的事情?我尝试了以下方法,但它不起作用。
final Date getuserDate = validate.date();
logger.debug("UserDate is" + getuserDate);
DateTime currentExpdelDate = new DateTime(getuserDate);
DateTime currentDate = new DateTime();
DateTime dtPlus = currentDate.plusDays(32);
long millisec = dtPlus.getMillis() - currentExpdelDate.getMillis();
if (millisec > 0) {
long diffDays = millisec / (24 * 60 * 60 * 1000);
if (diffDays < 32) {
System.out.println("Date should be greater than 32 days")
}
}
通用类型DateTime
不适合日期任务。因此,您应该在 Joda-Time-library 中选择类型 LocalDate
。
那你就可以用这个了constructor。请注意,您需要指定时区,因为当前日期与世界各地的同一时间不同。
java.util.Date input = ...;
DateTimeZone zone = DateTimeZone.forID(...);
LocalDate userDate = new LocalDate(input, zone);
boolean exclude = new LocalDate(zone).plusDays(32).isAfter(userDate);
if (exclude) {
System.out.println("Date should be greater than 32 days in the future.");
}
如果您已经在使用 Java 8,您可以使用其新的 LocalDate
class using plusDays()
and isBefore()
方法。
我想根据条件验证用户输入的日期。条件是用户输入的新日期应大于 32 天。如何做同样的事情?我尝试了以下方法,但它不起作用。
final Date getuserDate = validate.date();
logger.debug("UserDate is" + getuserDate);
DateTime currentExpdelDate = new DateTime(getuserDate);
DateTime currentDate = new DateTime();
DateTime dtPlus = currentDate.plusDays(32);
long millisec = dtPlus.getMillis() - currentExpdelDate.getMillis();
if (millisec > 0) {
long diffDays = millisec / (24 * 60 * 60 * 1000);
if (diffDays < 32) {
System.out.println("Date should be greater than 32 days")
}
}
通用类型DateTime
不适合日期任务。因此,您应该在 Joda-Time-library 中选择类型 LocalDate
。
那你就可以用这个了constructor。请注意,您需要指定时区,因为当前日期与世界各地的同一时间不同。
java.util.Date input = ...;
DateTimeZone zone = DateTimeZone.forID(...);
LocalDate userDate = new LocalDate(input, zone);
boolean exclude = new LocalDate(zone).plusDays(32).isAfter(userDate);
if (exclude) {
System.out.println("Date should be greater than 32 days in the future.");
}
如果您已经在使用 Java 8,您可以使用其新的 LocalDate
class using plusDays()
and isBefore()
方法。