在Java

时间:2019-01-15 22:40:04

标签: java date

对于比较时间,我需要将它们从Date()中删除。我有两个约会,我需要精确地找出小时中的区别

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

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

2 个答案:

答案 0 :(得分:3)

对日期/时间值的数学处理是无知的,并且可能是您可以做的最坏的事情。关于日期/时间操作的规则很多,最好由一个体面且经过良好测试的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

答案 1 :(得分:0)

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

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;
}