java日期扣除小时 - 两小时之间的期间
问题描述:
我找不到我错了什么,它与相同的日期 完美的工作,但是当我输入一个不同的日期,它会做出巨大的计算。 它为我想要做的停车场软件。计算2小时java日期扣除小时 - 两小时之间的期间
public void obtenerSalida(String fech, String fech_s,String hora_sal,String serie,String hora_e,
javax.swing.JTextField periodo){
String per;
String dateStart =fech+" "+hora_e;
String dateStop =fech_s+" "+hora_sal;
System.out.println(dateStart);
System.out.println(dateStop);
SimpleDateFormat format = new SimpleDateFormat("yy/MM/dd 00:00:00");
Date d1 = null;
Date d2 = null;
try {
d1 = format.parse(dateStart);
d2 = format.parse(dateStop);
} catch (ParseException e) {
e.printStackTrace();
}
long diff = d2.getTime() - d1.getTime();
long diffSeconds = diff/1000%60;
long diffMinutes = diff/(60 * 1000);
long diffHours = diff/(60 * 60 * 1000);
if((diffMinutes>=1) && (diffMinutes<60)){
periodo.setText(diffMinutes + " minuto(s).");
}
else
if((diffMinutes>=60)&&(diffHours>=1 && diffHours<10)){
per=diffHours+":"+(diffMinutes%60);
periodo.setText(per);
}
System.out.println("Time in seconds: " + diffSeconds + " seconds.");
System.out.println("Time in minutes: " + diffMinutes + " minutes.");
System.out.println("Time in hours: " + diffHours + " hours.");
System.out.println(""+diff);
}
例
I enter this values
fech = 6/12/2016
fech_s = 7/12/2016
hora_e = 1:41:49
hora_s = 8:18:43
之间的期间,我得到这个
6/12/2016 1:41:49
7/12/2016 8:18:43
Time in seconds: 54 seconds.
Time in minutes: 525996 minutes.
Time in hours: 8766 hours.
,我知道它完全错误的。它不能一直这么久
答
看看你的时间和日期格式:
SimpleDateFormat("yy/MM/dd 00:00:00")
,但你把日期以其他格式。 而是使用以下格式:
"d/MM/yyyy HH:mm:ss"
解析器是错的..'YY/MM/DD 00:00:00'你输入'DD/MM/YY ...'就是把差异应代表?分钟可能> 59? – AxelH
仅供参考,您正在使用麻烦的旧日期 - 时间类,现在是遗留的,由java.time类代替。查看“Instant”,“ZonedDateTime”和“Duration”类。 –