LocalDateTime怎么转成时间戳
时间: 2024-08-16 10:05:35 浏览: 73
`LocalDateTime` 转换成时间戳通常通过 `Instant` 类来进行,因为 `Instant` 表示的是自 Unix 纪元(1970年1月1日 00:00:00 GMT)以来的秒数和纳秒数。以下是将 `LocalDateTime` 转换为时间戳的步骤:
```java
import java.time.LocalDateTime;
import java.time.Instant;
// 假设有一个 LocalDateTime 对象叫做 localDateTime
LocalDateTime localDateTime = ...;
// 创建一个 Instant 对象,包含 LocalDateTime 的日期和时间信息
Instant instant = Instant.ofEpochSecond(localDateTime.atZone(ZoneId.systemDefault()).toInstant().getEpochSecond(),
localDateTime.getNano());
// 然后你可以得到一个 long 类型的时间戳,表示自纪元至今的毫秒数
long timestampMillis = instant.toEpochMilli();
```
这里需要注意的是,`atZone(ZoneId.systemDefault())` 是为了将本地时区的 `LocalDateTime` 转换为协调世界时 (`UTC`),这是因为大多数时间戳都是基于 UTC 计算的。
阅读全文