本地时区 LocalDateTime 转换 UTC LocalDateTime
时间: 2023-07-12 21:22:24 浏览: 373
UTC与本地时间转换函数
5星 · 资源好评率100%
要将本地时区的LocalDateTime转换为UTC LocalDateTime,可以使用Java 8中的ZoneId和ZoneOffset类来实现。具体步骤如下:
1. 获取本地时区的ZoneId对象,可以使用ZoneId.systemDefault()方法获取当前系统默认时区。例如:ZoneId zoneId = ZoneId.systemDefault();
2. 将本地时区的LocalDateTime对象转换为Instant对象,Instant是Java 8中表示时间戳的类。可以使用LocalDateTime对象的atZone()方法将其转换为ZonedDateTime对象,再使用ZonedDateTime对象的toInstant()方法将其转换为Instant对象。例如:Instant instant = localDateTime.atZone(zoneId).toInstant();
3. 使用Instant对象和UTC时区的ZoneOffset类创建UTC LocalDateTime对象。可以使用Instant对象的atOffset()方法将其转换为OffsetDateTime对象,再使用OffsetDateTime对象的toLocalDateTime()方法将其转换为UTC LocalDateTime对象。例如:LocalDateTime utcLocalDateTime = instant.atOffset(ZoneOffset.UTC).toLocalDateTime();
完整示例代码如下:
```
LocalDateTime localDateTime = LocalDateTime.now();
ZoneId zoneId = ZoneId.systemDefault();
Instant instant = localDateTime.atZone(zoneId).toInstant();
LocalDateTime utcLocalDateTime = instant.atOffset(ZoneOffset.UTC).toLocalDateTime();
System.out.println("本地时区LocalDateTime:" + localDateTime);
System.out.println("UTC时区LocalDateTime:" + utcLocalDateTime);
```
运行结果如下:
```
本地时区LocalDateTime:2021-10-08T15:18:27.317
UTC时区LocalDateTime:2021-10-08T07:18:27.317
```
阅读全文