java - 如何使用Java获得小时差

标签 java sql postgresql jakarta-ee

我有两个日期,我正在尝试从中提取小时数 -

 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/

相关文章:

java - 庞加莱指数法(指纹奇异点)

java - 需要通过 section id 从 HTML 获取 href

sql - 通过 SQL 根据相同的行组分配组名

python - 为什么Django查询要检查唯一性?

sql - WITH 是否创建一个临时表,如果可以,它可以安全地用于多个线程吗?

java - Android 与 ArrayList 的共享首选项

Java System.getProperty ("user.home") 如何为其他用户 (pi) 返回主页?

mysql - 有没有一种方法可以使用单个 MySQL 查询来合并两个表,并覆盖和相乘结果

mysql - 使用相同的表和行偏移进行更新

mysql - 在 SQL 中连接两个字段