【发布时间】:2019-05-07 11:37:00
【问题描述】:
我需要格式化 ZonedDate 时间以格式化 MM/dd/yyyy。
ZonedDateTime zonedDateTime = ZonedDateTime.now();
String date = DateTimeFormatter.ofPattern("MM/dd/yyyy").format(zonedDateTime);
ZonedDateTime zoneDate = ZonedDateTime.parse(date);
得到错误:
线程“main”java.time.format.DateTimeParseException 中的异常:无法在索引 0 处解析文本“12/05/2018”
或者,如果我将我的值转换为我想要的格式的字符串,然后尝试再次使用我的格式将其解析回 ZonedDate Time:
DateTimeFormatter format = DateTimeFormatter.ofPattern("MM/dd/yyyy");
ZonedDateTime zonedDateTime = ZonedDateTime.now();
String date = DateTimeFormatter.ofPattern("MM/dd/yyyy").format(zonedDateTime);
ZonedDateTime zonedate = ZonedDateTime.parse(date, format);
我得到错误:
线程“主”java.time.format.DateTimeParseException 中的异常:无法解析文本“12/05/2018”:无法从 TemporalAccessor 获取 ZonedDateTime:{},ISO 解析为 2018-12-05 类型java.time.format.Parsed
我已经看到很多关于此的问题,但我不断收到这些解析错误
【问题讨论】:
-
这不是
parse期望的格式。使用 takes aDateTimeFormatter使用您的格式“MM/dd/yyyy”创建的另一个覆盖它应该解析。 -
如果您只有月、日和年,您应该使用LocalDate,而不是 ZonedDateTime。
-
@DavidConrad 我编辑了问题,包括我已经尝试过的问题以及收到的错误。
-
是的,对不起,我看到你的编辑就像我发表的评论一样。
-
@DavidConrad 出于某种原因它仍然无法解析,即使字符串已经按照我想要的方式进行了格式化,并且我将相同的格式传递给
parse方法。
标签: java datetime-parsing zoneddatetime