在 java 中从 date() 获取小时



对于比较时间,我需要将它们取出 Date()。我有两个日期,我需要在小时内准确地找到它们的差异

Date date1 = new Date();
Date date2 = new Date();
System.out.println(date1.getHours()-date2.getHours());

我知道这不是正确的代码,但需要这样的东西

对日期/时间值的数学操作是无知的,可能是你能做的最糟糕的事情。 围绕日期/时间操作有很多规则,最好留给一个体面且经过良好测试的 API。

从 Java 8 开始,您应该使用 java.time API 或早期版本的向后移植。

例如。。。

Instant now = Instant.now();
Instant then = now.minus(2, ChronoUnit.DAYS);
System.out.println(Duration.between(then, now).toHours());

打印48

获取秒差,然后将秒转换为小时。

var startDate = new Date();
var endDate = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;
// 3.557 seconds difference between the two times
var hourDiff = seconds / 60 / 60;
// 0.0009880555555555556 hours..

包装成函数:

function getHourDiff(date1, date2) {
    var seconds = (date1.getTime() - date2.getTime()) / 1000;
    return seconds / 60 / 60;
}

最新更新