【发布时间】:2020-08-27 18:07:48
【问题描述】:
我有一个特定的日期格式。我可以减去 2 个日期,但我无法从未来的日期中减去今天的日期。
我找到了获取今天日期的方法
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDateTime now = LocalDateTime.now();
System.out.println(dtf.format(now));
这是我减去 2 个日期(字符串)的方法
public boolean DateDiff(String datep,String dater) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate date1 = LocalDate.parse(datep, formatter);
LocalDate date2 = LocalDate.parse(dater, formatter);
long elapsedDays = ChronoUnit.DAYS.between(date1, date2);
我无法将当前日期转换为字符串,因此我可以减去 2 个相同类型的变量。LocalDateTime now 是什么类型
【问题讨论】:
-
“我无法将当前日期转换为字符串”:但您已经这样做了 -
dtf.format(now)。当然,您无需将未来日期与LocalDate.now()进行比较。 -
看看这个:stackoverflow.com/questions/22326339/…。这应该可以消除您的所有疑虑。
-
这能回答你的问题吗? How create Date Object with values in java
-
我尝试了弗兰克的方式。但它给了我线程“JavaFX 应用程序线程”java.lang.NullPointerException 中的异常:文本错误。很奇怪。我已经成功地通过文本字段中的输入减去了两个日期(字符串),现在我尝试从未来的它给了我这个错误
-
我同意这很奇怪。 @FrankMi 的答案中的代码中没有任何内容可以为您提供
NullPointerException(我运行了四个 sn-ps 中的每一个,没有出现任何异常)。