LocalDateTime转为long值
时间: 2025-01-12 12:40:22 浏览: 61
### 将 `LocalDateTime` 转换为时间戳
为了将 `LocalDateTime` 对象转换为表示自1970年1月1日以来经过的毫秒数(即 Unix 时间戳),可以通过将其调整到特定时区并最终转换成 `Instant` 来完成此操作。由于 `LocalDateTime` 不包含任何时区信息,因此在执行此类转换之前,必须指定目标时区。
```java
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.Instant;
public class Main {
public static void main(String[] args) {
// 获取当前本地日期时间
LocalDateTime localDateTime = LocalDateTime.now();
// 定义时区
ZoneId zoneId = ZoneId.systemDefault();
// 将 LocalDateTime 调整至给定时区,并转为 Instant
Instant instant = localDateTime.atZone(zoneId).toInstant();
// 获取自纪元开始至今所经历的毫秒数
long timestamp = instant.toEpochMilli();
System.out.println("Timestamp: " + timestamp);
}
}
```
上述代码展示了如何先通过调用 `.atZone()` 方法向不带有时区信息的 `localDateTime` 添加默认系统时区,之后再利用所得对象创建一个 `Instant` 实例以便于访问其内部存储的时间戳值[^2]。
阅读全文
相关推荐


















