java - 在java中计算日期/时间差

标签 java time

我想以小时/分钟/秒计算两个日期之间的差异

我的代码有点小问题:

String dateStart = "11/03/14 09:29:58";
String dateStop = "11/03/14 09:33:43";

// Custom date format
SimpleDateFormat format = new SimpleDateFormat("yy/MM/dd HH:mm:ss");  

Date d1 = null;
Date d2 = null;
try {
    d1 = format.parse(dateStart);
    d2 = format.parse(dateStop);
} catch (ParseException e) {
    e.printStackTrace();
}    

// Get msec from each, and subtract.
long diff = d2.getTime() - d1.getTime();
long diffSeconds = diff / 1000;         
long diffMinutes = diff / (60 * 1000);         
long diffHours = diff / (60 * 60 * 1000);                      
System.out.println("Time in seconds: " + diffSeconds + " seconds.");         
System.out.println("Time in minutes: " + diffMinutes + " minutes.");         
System.out.println("Time in hours: " + diffHours + " hours."); 

这应该产生:

Time in seconds: 45 seconds.
Time in minutes: 3 minutes.
Time in hours: 0 hours.

但是我得到了这个结果:

Time in seconds: 225 seconds.
Time in minutes: 3 minutes.
Time in hours: 0 hours.

谁能看到我在这里做错了什么?

最佳答案

我更喜欢使用建议的 java.util.concurrent.TimeUnit 类。

long diff = d2.getTime() - d1.getTime();//as given

long seconds = TimeUnit.MILLISECONDS.toSeconds(diff);
long minutes = TimeUnit.MILLISECONDS.toMinutes(diff); 

关于java - 在java中计算日期/时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5351483/

相关文章:

mysql - 每天统计消息数(17 :00 counts for next day) 之后

ruby - 在 Ruby 中将两位数年份转换为四位数年份

javascript - 根据选定的小时和分钟从表格中获取下一个最接近的时间

java - 有没有办法弄清楚windows上的java时间片?

java - Java TextArea paint 方法在哪里实现?

c# - 如何将 .NET Guid 读入 Java UUID

Java客户端锁定错误

java - 用于将数字替换为字符的正则表达式

java - 使用 jOOQ 创建带主键的表

python - 使用 pandas 添加数据框列中缺失的时间