我有两个日期,我正在尝试从中提取小时数 -
Date1 = "2014-03-22 22:00:00.022023"
Date2= "2014-03-26 16:45:04.445531"
以上两个日期是时间戳,我是从 postgresql 数据库获取的。现在我正在尝试提取上述两个日期之间的小时数增量。所以我有下面的代码-
long delta = getDateDiff(queryDate, createdDate, TimeUnit.HOURS);
System.out.println(delta);
public static long getDateDiff(Date date1, Date date2, TimeUnit timeUnit) {
long diffInHour = date2.getTime() - date1.getTime();
return TimeUnit.convert(diffInHour,TimeUnit.HOURS);
}
但是增量为 - 326704423
,这是错误的,因为它应该为 91 小时
。我也有类似的 SQL 查询,它给了我日期之间的小时增量,从中我可以看到 91 作为返回的答案,所以我肯定做错了。
谁能帮我解决这个问题吗?
最佳答案
getTime()
返回毫秒数。因此您需要将毫秒转换为小时。
public static long getDateDiff(Date date1, Date date2) {
long diffInMilliseconds = date2.getTime() - date1.getTime();
return TimeUnit.MILLISECONDS.toHours(diffInMilliseconds);
}
关于java - 如何使用Java获得小时差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23231602/