Как преобразовать строковые значения в даты в 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.
Спасибо!!!