【发布时间】:2019-01-13 06:43:30
【问题描述】:
我有一个显示不同日期的脚本,但我需要它是在“tglkembali”低于“tempo”时获得 0 天,但我键入的脚本是双向计算
try{
String tglsatu = tempo.getText();
DateFormat date = new SimpleDateFormat("yyyy-MM-dd");
Date tglAwal = (Date) date.parse(tglsatu);
String tgldua = tglKembali.getText();
Date tglAkhir = (Date) date.parse(tgldua);
long bedaHari = tglAkhir.getTime() - tglAwal.getTime();
terlambat.setText(TimeUnit.MILLISECONDS.toDays(bedaHari) + " hari");
}catch(Exception e){
JOptionPane.showMessageDialog(this, e.getMessage());
}
}
【问题讨论】:
-
我建议你不要使用
SimpleDateFormat和Date。这些类设计不佳且早已过时,尤其是前者,尤其是出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的LocalDate和DateTimeFormatter。此外,ChronoUnit.DAYS.between()对您的任务也很方便。 -
if-else声明?如果差值为负,则打印 0。