LocalDateTime获取传入时间戳所在小时的开始时间戳
时间: 2023-06-29 19:19:13 浏览: 209
可以通过以下代码获取传入时间戳所在小时的开始时间戳:
```java
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
public class Example {
public static void main(String[] args) {
long timestamp = 1628680800; // 传入的时间戳,单位为秒
LocalDateTime dateTime = LocalDateTime.ofInstant(Instant.ofEpochSecond(timestamp), ZoneId.systemDefault());
LocalDateTime startOfHour = dateTime.withMinute(0).withSecond(0).withNano(0);
long startOfHourTimestamp = startOfHour.atZone(ZoneId.systemDefault()).toEpochSecond();
System.out.println(startOfHourTimestamp); // 输出:1628677200
}
}
```
其中,`LocalDateTime.ofInstant`方法将时间戳转换为`LocalDateTime`对象,`withMinute(0).withSecond(0).withNano(0)`将分、秒、纳秒设置为0,得到这个小时的开始时间,再通过`atZone`方法将`LocalDateTime`转换为`ZonedDateTime`,最后通过`toEpochSecond`方法获取时间戳。
阅读全文