当前位置: 首页 > 面试题库 >

计算java中的日期/时间差

黄磊
2023-03-14
问题内容

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

我的代码在这里有一个小问题:

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.

有人可以在这里看到我在做什么错吗?


问题答案:

尝试

long diffSeconds = diff / 1000 % 60;  
long diffMinutes = diff / (60 * 1000) % 60; 
long diffHours = diff / (60 * 60 * 1000);

注意:这假定diff是非负数。



 类似资料:
  • 本文向大家介绍java计算两个日期中间的时间,包括了java计算两个日期中间的时间的使用技巧和注意事项,需要的朋友参考一下 java计算两个日期中间的时间 其中在数据库中有一个字段为datetime类型,想要计算两个日期之间过了多少天 多少小时 多少分钟。 思路为把时间换算为毫秒(与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量)。然后利用毫秒的加减计算。 计算如下:

  • 1.日期时间的转换及赋值 1.1.date类型转换为字符串 justep.Date.toString(new Date(), justep.Date.STANDART_FORMAT_SHOT) 4种时间格式常量: justep.Date.DEFAULT_FORMAT 时间格式常量 = “yyyy/MM/dd hh:mm:ss” justep.Date.DEFAULT_FORMAT_SHOT 时

  • 问题内容: 我在-type字段中将上次登录时间存储在MySQL中。当用户登录时,我想获取上次登录时间与当前时间(我使用)之间的时差。 我该如何计算? 问题答案: 使用MySQL函数。例如,您可以使用: 在您的情况下,函数的第三个参数将是当前登录时间()。第二个参数是上次登录时间,该时间已在数据库中。

  • 问题内容: 我已经看到了许多方法,如何根据特定的日期组件(例如,天,小时,月等)来计算两个日期之间的差异 我还没有看到的是如何使用实际Date对象进行计算。就像是 我已经看到了 iOS 10中引入的类型,但是根据文档DateInterval [it]不支持反向间隔,即持续时间小于0且结束日期在时间上早于开始日期的间隔。 这样就很难计算日期,尤其是当您不知道哪个是较早的日期时。 是否有任何干净整洁的

  • 本文向大家介绍python计算日期之间的放假日期,包括了python计算日期之间的放假日期的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python计算日期之间的放假日期,供大家参考,具体内容如下 代码如下: 打印结果如下: 中国 (4, [datetime.date(2014, 4, 20), datetime.date(2014, 12, 25), datetime.date(

  • 问题内容: 我觉得很有趣,Java(或java.util库)没有内置函数来计算日期差。我想从另一个减去一个日期,以获得它们之间的经过时间。做这个的最好方式是什么? 我知道简单的方法是将时间差以毫秒为单位,然后将其转换为天。但是,我想知道这是否在所有情况下都有效(带夏令时等)。 问题答案: 如果您关注开放源代码,那么Java并不会丢失太多:尝试Joda-Time。