我正在尝试使用处理 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);}问题在于最后一行之间的函数,它说它需要2个时间作为输入?
1 回答
明月笑刀无情
TA贡献1828条经验 获得超4个赞
您的编译器错误可以通过使用正确的类型来解决。不要使用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"));
它也应该适用于两位数的月份。出于性能原因,我建议将格式化程序对象分配给静态最终常量。
添加回答
举报
0/150
提交
取消