java两个timestamp求小时数优雅
时间: 2024-01-23 08:17:56 浏览: 91
可以使用 `Duration` 类来优雅地计算两个 `Timestamp` 之间的小时数差,例如:
```
Timestamp timestamp1 = new Timestamp(System.currentTimeMillis());
Timestamp timestamp2 = new Timestamp(System.currentTimeMillis() + 3600000); // 假设相差1小时
Duration duration = Duration.between(timestamp1.toInstant(), timestamp2.toInstant());
long hours = duration.toHours();
```
其中,`toInstant()` 方法将 `Timestamp` 转换为 `Instant` 类型,`Duration.between()` 可以直接计算两个 `Instant` 之间的时间差,最后通过 `toHours()` 方法将时间差转换为小时数。以上代码更加简洁、优雅。
相关问题
java两个timestamp求小时数优雅并支持小数表示小时
可以通过以下代码来计算两个 Timestamp 之间的小时数:
```java
Timestamp ts1 = new Timestamp(System.currentTimeMillis());
Timestamp ts2 = new Timestamp(System.currentTimeMillis() + 3600000); // 假设 ts2 比 ts1 大一个小时
long diff = ts2.getTime() - ts1.getTime();
double hours = (double) diff / (1000 * 60 * 60);
System.out.println(hours); // 输出 1.0
```
这里用到了 Timestamp 的 getTime() 方法来获取时间戳,然后计算时间差,最后除以 1000 * 60 * 60 得到小时数。需要注意的是,我们将时间差转换为 double 类型,这样可以支持小数表示小时。
阅读全文