传入时间戳通过LocalDateTime获取此时间戳所在日期的最后时间戳
时间: 2023-07-21 09:08:53 浏览: 72
获取时间戳
可以使用`LocalDateTime`和`ZoneOffset`来获取一个时间戳所在日期的最后时间戳。具体的实现代码如下:
```java
long timestamp = 1629312000000L; // 假设传入的时间戳为 2021-08-19 00:00:00
ZoneOffset zoneOffset = ZoneOffset.of("+8");
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), zoneOffset);
LocalDateTime endOfDay = localDateTime.toLocalDate().atTime(23, 59, 59);
long endOfDayTimestamp = endOfDay.toInstant(zoneOffset).toEpochMilli();
```
其中,`LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), zoneOffset)`表示将时间戳转化为`LocalDateTime`对象;`localDateTime.toLocalDate().atTime(23, 59, 59)`表示获取`LocalDateTime`所在日期的最后时间;`endOfDay.toInstant(zoneOffset).toEpochMilli()`表示将最后时间转化为时间戳。
需要注意的是,上述代码中的时区设置是硬编码的,如果需要适应不同的时区,可以根据实际情况进行调整。
阅读全文