对于比较时间,我需要将它们取出 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;
}