对于比较时间,我需要将它们从Date()中删除。我有两个约会,我需要精确地找出小时中的区别
Date date1 = new Date();
Date date2 = new Date();
System.out.println(date1.getHours()-date2.getHours());
我知道这是不正确的代码, 但需要这样的东西
答案 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;
}