use*_*877 0 java time datetime
我试图计算两个日期/时间之间的时间差.这是我导入的:
import java.util.concurrent.TimeUnit;
import java.text.*;
import java.util.*;
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
SimpleDateFormat format= new SimpleDateFormat("yy/MM/dd HH:mm:ss");
String dateStart = "11/03/14 19:29:58";
String dateStop = "11/05/14 08:03:13";
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 seconds = TimeUnit.MILLISECONDS.toSeconds(diff);
long minutes=TimeUnit.MILLISECONDS.toMinutes(diff);
System.out.println(minutes);
Run Code Online (Sandbox Code Playgroud)
我认为这应该可以正常工作,但不是正确的答案我得到"87153".错误的来源是什么?我该如何纠正?
这对我来说是正确的......你已经有两个月了,所以60.5天(因为它从晚上8点开始到早上8点结束).一天包含1440分钟.1440*60.5是87120,非常接近您收到的答案.
目前尚不清楚你的期望是什么,但是Java的数学是正确的.错误的来源可能是你的期望:)
(另外,您可能希望指定UTC的时区,除非您希望这样的计算使用您的本地时区.由于这个原因,您可以轻松获得距离预期结果一小时的答案.)