java中UTC时间字符串怎么转为LocalDateTime
时间: 2023-07-28 22:21:30 浏览: 50
可以使用Java 8的DateTimeFormatter来将UTC时间字符串转换为LocalDateTime对象。以下是一个示例代码:
```java
String utcTime = "2023-05-29T08:20:50Z";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'");
LocalDateTime dateTime = LocalDateTime.parse(utcTime, formatter);
```
在以上示例中,首先定义了一个UTC时间字符串,然后使用DateTimeFormatter的ofPattern方法定义了一个格式化字符串,该格式化字符串指定了UTC时间的格式。接着使用LocalDateTime的parse方法将UTC时间字符串转换为LocalDateTime对象。
需要注意的是,UTC时间字符串中的Z表示UTC时区,如果字符串中没有Z,则需要在格式化字符串中使用"X"或"XX"来指定时区偏移量。
相关问题
String类型 UTC时间 转 本地 LocalDateTime
可以使用Java 8的DateTimeFormatter类来将String类型的UTC时间转换为本地的LocalDateTime。下面是一个示例代码:
```java
String utcTime = "2021-10-13T09:30:00.000Z";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
.withZone(ZoneId.of("UTC"));
Instant instant = Instant.from(formatter.parse(utcTime));
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
```
在这个示例代码中,我们首先定义了一个UTC时间的格式化器,并将其与UTC时区相关联。然后,我们使用该格式化器将输入的UTC时间解析为一个Instant对象。最后,我们使用该Instant对象和本地时区创建一个LocalDateTime对象。
请注意,此代码假定输入的UTC时间已经是一个符合ISO 8601标准的字符串,例如"2021-10-13T09:30:00.000Z"。如果输入的字符串格式不同,请相应地更改格式化器的格式。
秒级字符串时间戳转LocalDateTime
你可以使用Java 8中的DateTimeFormatter类将字符串时间戳转换为LocalDateTime。以下是一个示例代码:
```
String timestamp = "1620082800";
long epochSeconds = Long.parseLong(timestamp);
LocalDateTime datetime = LocalDateTime.ofEpochSecond(epochSeconds, 0, ZoneOffset.UTC);
```
这里,我们首先将时间戳字符串转换为long类型的epoch seconds,然后使用LocalDateTime.ofEpochSecond()方法将其转换为LocalDateTime对象。在这个示例中,我们使用UTC时区,你可以根据需要更改时区。