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

标签 java date processing

我正在尝试使用处理 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);

}

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

最佳答案

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

而不是

new SimpleDateFormat("yyyy-mm-dd").parse("2015-04-23");

使用

LocalDate.parse("2015-04-23");

另一件事:

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

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

您可以使用重载的解析方法以这种方式接受额外的格式化程序参数:

LocalDate.parse("2015-4-23", DateTimeFormatter.ofPattern("uuuu-M-dd"));

它也应该适用于两位数的月份。出于性能原因,我建议将格式化程序对象分配给静态最终常量。

关于java - 如何计算处理3中两个给定日期之间的天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54571083/

相关文章:

java - java中的数据类型 "char"

java - 将 SQLite 游标中的所有行列获取到对象中

java - 使用 .compareTo 比较日期时,为什么不考虑月份?

javascript - 在javascript中计算具有特定日期的数组元素

processing - 从 Sketch 菜单添加时,Processing 库安装在哪里?

javascript - 处理 Sketch 无法在 JavaScript 模式下工作

java - 使用 Spring AOP 处理异常时获取传递给方法的参数值

java - 使用 Jespa WINdow 身份验证

bash - 使用舍入毫秒 Bash Shell 脚本从时间戳中获取格式化日期

java - 将Processing Serial库导入java文件