DateTimeFormatter не может разобрать дату с десятичным 0 после секунды в Java 8 - PullRequest
0 голосов
/ 06 февраля 2019

Я использую Java 8. Я пытаюсь разобрать дату в строку с DateTimeFormatter.Но это дает следующую ошибку.Моя попытка и ошибка приведены ниже.Может кто-нибудь помочь мне?

мой код >>

String getFormatedDateForList(String dateObj) {
    // dateObj = "2019-02-06 00:00:00.0"
    DateTimeFormatter inputFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    DateTimeFormatter outputFormat = DateTimeFormatter.ofPattern("dd/MM/yyyy");
    String output = LocalDate.parse(dateObj, inputFormat).format(outputFormat)
    return output
}

ошибка >>

Text '2019-02-06 00:00:00.0' could not be parsed, unparsed text found at index 19. Stacktrace follows: Message: Text '2019-02-06 00:00:00.0' could not be parsed, unparsed text found at index 19

1 Ответ

0 голосов
/ 06 февраля 2019

Ваш шаблон форматирования ввода yyyy-MM-dd HH:mm:ss указывает первые 19 символов, в то время как ваш ввод dateObj содержит больше, чем это.Следовательно, синтаксический анализатор находит неразобранный текст начиная с 20-го символа (индекс 19) и далее.

Учитывая, что у вас есть одна десятая секунды в dateObj, вам необходимо указать это в шаблоне форматирования.Основываясь на API , я думаю, что вы хотите:

yyyy-MM-dd HH:mm:ss.S
...