org.threeten.bp.format.DateTimeParseException: текст '2018-07-22T14: 00: 00-03: 00' не может быть проанализирован в индексе 19 - PullRequest
0 голосов
/ 28 сентября 2018
    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()));

}

Мне нужно ввести дату в этом шаблоне гггг-ММ-дд'Т'ЧЧ: мм: сс'З 'это равно (2018-07-22T14: 00: 00-03: 00).И мне нужен вывод в этом шаблоне дд / мм / гггг

Помогите мне, пожалуйста.

У меня было много проблем с датой на Android: (

1 Ответ

0 голосов
/ 28 сентября 2018

Ваш код очень запутанный, со странными именами, и вы, кажется, смешиваете строки 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
...