2022-09-26T16:46:39.992+08:00 [Asia/Shanghai]这个字符串java怎么转换成LocalDateTime
时间: 2024-09-20 20:10:51 浏览: 67
在Java中,将ISO 8601格式的时间字符串(如"2022-09-26T16:46:39.992+08:00")转换为`LocalDateTime`,你可以使用`java.time`包下的`ZonedDateTime`类先解析,然后提取出日期时间部分。这里是一个示例:
```java
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
String dateTimeStr = "2022-09-26T16:46:39.992+08:00";
// 使用ISO日期时间格式进行解析
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
ZonedDateTime zonedDateTime = ZonedDateTime.parse(dateTimeStr, formatter);
// 提取到LocalDateTime并忽略时区信息
LocalDateTime localDateTime = zonedDateTime.toLocalDateTime(ZoneOffset.UTC);
System.out.println(localDateTime); // 输出:2022-09-26T16:46:39
}
}
```
在这个例子中,我们首先创建了一个`DateTimeFormatter`实例,指定输入字符串的格式。然后使用`parse()`方法将字符串转换为`ZonedDateTime`,最后通过`toLocalDateTime()`方法去除时区信息,得到`LocalDateTime`。
阅读全文