如何使用Java获得小时差异
我有两次约会,我试图从中提取时间增量-如何使用Java获得小时差异,java,sql,postgresql,jakarta-ee,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.pr
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作为返回的答案,所以我肯定是做错了
有人能帮我吗?将您的函数更新为
public static long getDateDiff(Date date1, Date date2, TimeUnit timeUnit) {
return (long) ((date2.getTime() - date1.getTime())/3600000);
}
getTime()
返回毫秒数。因此,您需要将毫秒转换为小时
public static long getDateDiff(Date date1, Date date2) {
long diffInMilliseconds = date2.getTime() - date1.getTime();
return TimeUnit.MILLISECONDS.toHours(diffInMilliseconds);
}
TimeUnit
怎么知道这个数字是以毫秒为单位的?把它除以3600000.0。谢谢@chrylis,你说得对,它成功了。你能把它作为一个答案贴出来让我接受吗