【问题标题】:java.time.format.DateTimeParseException: Text could not be parsed at index "dd.MM.yyyy HH:mm" [duplicate]java.time.format.DateTimeParseException:无法在索引“dd.MM.yyyy HH:mm”处解析文本 [重复]
【发布时间】:2021-08-20 10:50:11
【问题描述】:

我的代码是:

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm");
String filterValue = "01.03.2021 0:01";
LocalDateTime parsedDate = LocalDateTime.parse(filterValue, formatter);

我得到了例外 java.time.format.DateTimeParseException:无法在索引 11 处解析文本“01.03.2021 0:01”

【问题讨论】:

  • 尝试使用这种格式 "01.03.2021 00:01";
  • 或此模式:"dd.MM.yyyy H:mm"。顺便说一句,索引 11 是 0,如果您要解析一天中的一位数小时的值,请仅使用一个。
  • Java 中的索引是从 0 开始的,所以索引 11 是 0,而不是空格字符。
  • 0:01 不匹配 HH:mm

标签: java date datetime-parsing datetimeparseexception


【解决方案1】:

格式为“HH”,但提供的值为“0”。 “01.03.2021 00:01” 有效。

我认为在一个小时内强制使用前导零是非常不切实际的,但好吧,我有一个解决方案。

【讨论】:

  • 使用 deHaar 在问题“dd.MM.yyyy H:mm”中建议的模式
  • 对于HH,您明确请求领先的0。如果您认为拥有领先的0 不可行,请仅使用一个H
猜你喜欢
  • 2020-06-25
  • 1970-01-01
  • 1970-01-01
  • 2017-12-09
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 2018-04-04
  • 2018-12-12
相关资源
最近更新 更多