LocalDateTime获取传入时间戳当前小时的结束时间戳
时间: 2023-07-01 21:25:03 浏览: 113
可以使用Java 8中的LocalDateTime类来获取指定时间戳所在小时的结束时间戳。具体的实现方法如下:
```
// 获取当前时间戳
long timestamp = System.currentTimeMillis();
// 将时间戳转换为LocalDateTime对象
LocalDateTime dateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), ZoneId.systemDefault());
// 获取当前小时的结束时间
LocalDateTime endOfHour = dateTime.withMinute(59).withSecond(59).withNano(999999999);
// 将结束时间转换为时间戳
long endOfHourTimestamp = endOfHour.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
```
首先,使用System.currentTimeMillis()方法获取当前时间戳。然后,使用Instant.ofEpochMilli()方法将时间戳转换为Instant对象,再使用LocalDateTime.ofInstant()方法将Instant对象转换为LocalDateTime对象。
接下来,使用LocalDateTime对象的withMinute()、withSecond()和withNano()方法,将当前时间设置为当前小时的最后一秒。
最后,使用LocalDateTime对象的atZone()方法将时间转换为指定时区的ZonedDateTime对象,再使用toInstant()方法将ZonedDateTime对象转换为Instant对象,最终使用toEpochMilli()方法将Instant对象转换为时间戳。
阅读全文