我有一个字符串日期,格式为 dd.MM.yyyy。我想比较是否是未来的日期(今天+1天)
我正在尝试将字符串转换为日期并从
SimpleDateFormat
获取当前日期,但是当尝试转换字符串日期时,我得到“EEE MMM dd HH:mm:ss zzz yyyy”格式的输出。
String profileUpdateChangeDate = "31.01.2023"
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
Date changeDate = sdf.parse(profileUpdateChangeDate);
_log.info("changeDate===>>>"+changeDate);
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
String str = formatter.format(date);
_log.info("Currentdate-===>"+str);
如何检查
profileUpdateChangeDate
是否是未来的日期?
您应该使用新的 java.time 类,所以:
String profileUpdateChangeDate = "31.01.2023";
DateTimeFormatter df = DateTimeFormatter.ofPattern("dd.MM.yyyy");
LocalDate changeDate = LocalDate.parse(profileUpdateChangeDate, df);
LocalDate date = LocalDate.now();
System.out.printf("Is date %s in the future? %b%n", profileUpdateChangeDate, date.isBefore(changeDate));
您可以将解析的日期“changeDate”与当前日期进行比较。如果“changeDate”在当前日期之后,则它是未来日期。
String profileUpdateChangeDate = "31.01.2023";
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
Date changeDate = sdf.parse(profileUpdateChangeDate);
Date currentDate = new Date();
if (changeDate.after(currentDate)) {
System.out.println("profileUpdateChangeDate is a future date");
} else {
System.out.println("profileUpdateChangeDate is not a future date");
}