我认为这应该可行。授予它没有指定的偏移量,但是那不应该默认为UTC吗?如果没有,该如何将这样的字符串解析为OffsetDateTime?
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd['T'[HH:mm:ss][.SSSSS]][z][x]");
String datetime = "2018-12-03T18:07:55";
OffsetDateTime odt = OffsetDateTime.parse(datetime, formatter);
抛出异常: java.time.format.DateTimeParseException:无法解析文本“ 2018-12-03T18:07:55”:无法从TemporalAccessor获取{set} OffsetDateTime:ISO解析为Java类型的2018-12-03T18:07:55 .time.format.Parsed
答案 0 :(得分:0)
正如您所说,它失败了,因为格式没有偏移量。要解决此问题,您可以使用相同的格式来解析为LocalDateTime
,然后与ZoneOffset
组合以创建OffsetDateTime
:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd['T'[HH:mm:ss][.SSSSS]][z][x]");
String datetime = "2018-12-03T18:07:55";
LocalDateTime ldt = LocalDateTime.parse(datetime, formatter);
OffsetDateTime odt = OffsetDateTime.of(ldt, ZoneOffset.UTC);
System.out.println(odt);