【发布时间】:2015-10-06 03:48:45
【问题描述】:
我在查找时间之间的差异时遇到了一些问题,如果我尝试在今天的时间找到差异(比如 t1 = "08:00:00" 和 t2 = "10:00:00" 那么它给出了正确的输出, )但是当我试图找到像 t1 =“20:00:00”(今天的时间)和 t2 =“08:00:00”(第二天早上)这样的差异时,我希望输出为 12 小时但我得到了错误的输出。请帮助我。
String t1 = "20:00:00";
String t2 = "12:00:00";
String t3 = "24:00:00";
SimpleDateFormat sDf = new SimpleDateFormat("HH:mm:ss");
Date d1 = sDf.parse(t1);
Date d2 = sDf.parse(t2);
Date d3 = sDf.parse(t3);
long s1,s2,s3,s4,dif1,dif2,dif3,minutes,hrs;
dif1 = d2.getTime() - d1.getTime();
s1 = dif1/1000;
System.out.println("s1 "+s1);
if(s1<0){
dif2 = d3.getTime() - d1.getTime();
s2 = dif2/1000;
System.out.println("s2 "+s2);
dif3 = d2.getTime();
s3 = dif3/1000;
System.out.println("s3 "+s3);
s4 = s2+s3;
minutes = s4 / 60;
s4 = s4 % 60;
hrs = minutes / 60;
minutes = minutes % 60;
System.out.println("time difference is : "+hrs+": "+minutes+" :"+s4);
}else{
minutes = s1 / 60;
s1 = s1 % 60;
hrs = minutes / 60;
minutes = minutes % 60;
System.out.println("time difference is : "+hrs+": "+minutes+" :"+s1);
}
【问题讨论】:
-
认真的吗?使用 Java 8 的 Time API,使用 Joda Time,如果你真的非常绝望,使用
Calendar,但不要这样做! -
这个
s4 = s2+s3;对我来说似乎很奇怪,你不应该将两点之间的差加到第三点上,而不是加两次(12:00+24:00)吗?
标签: java time difference