将 LocalDateTime.now() 生成的字符串转换为其数据类型

Convert String of generated by LocalDateTime.now() to the its data type

我正在尝试转换值为 LocalDateTime 的字符串并将其转换为 LocalDateTime 数据类型。

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSX");

LocalDateTime localDateTime = LocalDateTime.parse(dateTime, formatter);

我也试过用这个:

LocalDateTime localDateTime = LocalDateTime.parse(dateTime);

但是得到同样的解析错误

java.time.format.DateTimeParseException: Text '2019-09-12T11:14:38.176906Z' could not be parsed at index 10

dateTime 变量的值为(在使用 LocalDateTime.now() 之前生成)

2019-09-12T11:14:38.176906Z

您可以使用标准 DateTimeFormatter 之一:
DateTimeFormatter.ISO_DATE_TIMEDateTimeFormatter.ISO_OFFSET_DATE_TIME
(您的 String 似乎与 UTC 有偏差)。

对于输出,你可以使用你想要的:

String datetime = "2019-09-12T11:14:38.176906Z";
OffsetDateTime ldt = OffsetDateTime.parse(datetime, DateTimeFormatter.ISO_DATE_TIME);
System.out.println(ldt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));

本例中的输出是:2019-09-12 11:14:38.