LocalDateTime获取时间戳
时间: 2024-09-14 18:00:47 浏览: 45
`LocalDateTime` 是 Java 8 引入的一个日期时间类,它表示没有时区信息的日期和时间。如果你需要从 `LocalDateTime` 获取对应的时间戳,即获取从 1970 年 1 月 1 日 00:00:00 UTC 到该 `LocalDateTime` 对应 UTC 时间的毫秒数,你需要将 `LocalDateTime` 转换为一个带时区的 `ZonedDateTime` 对象,然后获取其时间戳。
下面是一个如何进行转换的例子:
```java
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
public class Main {
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.now(); // 获取当前的LocalDateTime
ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault()); // 将LocalDateTime转换为系统默认时区的ZonedDateTime
long timestamp = zonedDateTime.toInstant().toEpochMilli(); // 获取时间戳(毫秒)
System.out.println("LocalDateTime: " + localDateTime);
System.out.println("Timestamp: " + timestamp);
}
}
```
在这个例子中,`LocalDateTime.now()` 获取当前的日期和时间,`atZone(ZoneId.systemDefault())` 将 `LocalDateTime` 转换为系统默认时区的 `ZonedDateTime`,然后 `toInstant().toEpochMilli()` 方法计算并返回从 1970 年 1 月 1 日开始到现在的毫秒数。
阅读全文