使用LocalDateTime获取到毫秒
时间: 2024-08-30 21:03:24 浏览: 49
java8 localtime 毫秒与时间互转 获取前一天六点钟时间
`LocalDateTime`是Java 8引入的一个日期时间类,它表示的是一个日期和时间,但不包括时区信息。如果你想从`LocalDateTime`获取毫秒级别的时间,你需要将其转换为`Instant`对象,因为`Instant`代表了一个具体的瞬间,包含了自纪元(1970年1月1日)以来的总毫秒数。
以下是如何操作的:
```java
import java.time.LocalDateTime;
import java.time.Instant;
// 首先创建一个LocalDateTime实例
LocalDateTime localDateTime = LocalDateTime.now();
// 将LocalDateTime转换为Instant,得到包含毫秒的时间戳
Instant instant = Instant.ofEpochSecond(localDateTime.atZone(ZoneOffset.UTC).toInstant().getEpochSecond(), localDateTime.getNano());
long milliseconds = instant.toEpochMilli(); // 获取总毫秒数
System.out.println("Milliseconds: " + milliseconds);
```
在这个例子中,我们首先将`LocalDateTime`转换为UTC时区的`ZonedDateTime`,然后使用`Instant.ofEpochSecond`方法获取自纪元开始的秒数加上纳秒转换成的毫秒值。
阅读全文