如何计算处理3中两个给定日期之间的天数?
How to calculate the number of days between two given dates in processing 3?
我正在尝试使用处理 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);
未评估结果。您应该将结果分配给一个 long-primitive 以供进一步处理。
关于您对输入一位数月份的评论
您可以使用重载的解析方法,以这种方式接受额外的格式化程序参数:
LocalDate.parse("2015-4-23", DateTimeFormatter.ofPattern("uuuu-M-dd"));
它应该也适用于两位数的月份。出于性能原因,我建议将格式化程序对象分配给静态最终常量。
我正在尝试使用处理 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);
未评估结果。您应该将结果分配给一个 long-primitive 以供进一步处理。
关于您对输入一位数月份的评论
您可以使用重载的解析方法,以这种方式接受额外的格式化程序参数:
LocalDate.parse("2015-4-23", DateTimeFormatter.ofPattern("uuuu-M-dd"));
它应该也适用于两位数的月份。出于性能原因,我建议将格式化程序对象分配给静态最终常量。