如何计算处理3中两个给定日期之间的天数?

Dan*_*far 2 java processing date

我正在尝试使用处理3来计算两个给定日期之间的天数.但是我遇到了日期库的问题.

import java.text.SimpleDateFormat;
import java.util.Date;

import java.time.LocalDate;
import java.time.Month;
import java.time.temporal.ChronoUnit;


Date epoDate = new Date();  
  Date epo = new Date();
    try {
      epoDate = new SimpleDateFormat("yyyy-mm-dd").parse("2015-01-03");
       epo = new SimpleDateFormat("yyyy-mm-dd").parse("2015-04-23");
    }
    catch (Exception e) {
    }

   ChronoUnit.DAYS.between(epo,epoDate);

}
Run Code Online (Sandbox Code Playgroud)

问题是在函数之间的最后一行,它说它需要2个时间作为输入?

Men*_*ild 7

您可以使用正确的类型解决编译器错误.不要使用java.util.Date(由SimpleDateFormat-parser 返回)但使用java.time.LocalDate它也提供了一种识别ISO格式yyyy-MM-dd的直接解析方法.

代替

new SimpleDateFormat("yyyy-mm-dd").parse("2015-04-23");
Run Code Online (Sandbox Code Playgroud)

使用

LocalDate.parse("2015-04-23");
Run Code Online (Sandbox Code Playgroud)

另一件事:

您的最终示例代码ChronoUnit.DAYS.between(epo,epoDate);不会评估结果.您应该将结果分配给long-primitive以进行进一步处理.

关于您对一位数月份输入的评论

您可以使用重载的parse-method以这种方式接受额外的formatter参数:

LocalDate.parse("2015-4-23", DateTimeFormatter.ofPattern("uuuu-M-dd"));
Run Code Online (Sandbox Code Playgroud)

它也应该与两位数月份一起工作.出于性能原因,我建议将formatter对象分配给静态最终常量.