org.threeten.bp.format.DateTimeParseException:无法在索引19处解析文本'2018-07-22T14:00:00-03:00'

时间:2018-09-27 22:01:55

标签: java android datetime-parsing parseexception threetenbp

    public static String formatter(String dateInPattern, String dateOutPattern) {
    OffsetDateTime dateInPatternFormat = OffsetDateTime.parse(dateInPattern, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ"));
    Date dateInValue = DateTimeUtils.toDate(Instant.parse(dateInPatternFormat.toString()));
    OffsetDateTime dateOutPatternFormat = OffsetDateTime.parse(dateOutPattern);

    return dateOutPatternFormat.format(DateTimeFormatter.ofPattern(dateInValue.toString()));

}

我需要以这种方式输入日期yyyy-MM-dd'T'HH:mm:ss'Z'等于(2018-07-22T14:00:00-03:00)。 我需要以dd / MM / yyyy

模式输出

请帮助我。

我在android上的日期有很多问题:(

1 个答案:

答案 0 :(得分:2)

您的代码很奇怪,名称很奇怪,您似乎混淆了 pattern 字符串,例如yyyy-MM-dd,带有 value 字符串,例如2018-07-22

可以将值字符串2018-07-22T14:00:00-03:00解析为OffsetDateTime,而无需指定DateTimeFormatter,因为这是OffsetDateTime的默认格式。

如果您随后需要将其 格式化为dd/MM/yyyy,则使用DateTimeFormatter

不知道为什么您的方法需要2个参数。

示例:

String input = "2018-07-22T14:00:00-03:00";
OffsetDateTime offsetDateTime = OffsetDateTime.parse(input);
String output = offsetDateTime.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
System.out.println(output); // prints: 22/07/2018