Как преобразовать строковые значения в даты в Java?

Я пытаюсь преобразовать некоторые значения даты из базы данных доступа (MDB).

Я получаю это: "Вт 17 мая 08:29:00 BRT 2011". Но я хочу это: "2011-05-17 08:29:00".

Я уже пытался использовать новые классы DateTime в JAVA 8, но это не сработало.

Вот что я попробовал:

public class DateHelper {

    LocalDateTime dateTime;

    public DateHelper(String dateTime) {
        this.convertStringToDateTimeDeclaration(dateTime);
    }

    protected void convertStringToDateTimeDeclaration(String dateTime){
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        this.dateTime = LocalDateTime.parse(dateTime, formatter);
    }

    public String getDateTime(){
        return dateTime.toString();
    }
}

но я получаю

"Исключение в потоке" Поток приложения JavaFX " java.time.format.DateTimeParseException: текст 'вторник, 17 мая 08:29:00 BRT 2011' не может быть проанализирован с индексом 0"

1 ответ

Решение

Как blm предложил:

Я должен был просто соответствовать шаблонам ввода, как это:

protected void convertStringToDateTimeDeclaration(String dateTime){
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy").;
        this.dateTime = LocalDateTime.parse(dateTime, formatter).withLocale(Locale.US);
    }

редактировать:

В конец цепочки методов LocalDateTime добавлено ".withLocale(Locale.US)", чтобы избежать исключения DateTimeParseException.

Спасибо!!!

Другие вопросы по тегам