我正在尝试从访问(MDB)数据库转换一些日期值。
我得到了这个:'星期二5月17日08:29:00 BRT 2011'。 但我想要这个:'2011-05-17 08:29:00'。
我已经尝试过使用JAVA 8个新的DateTime类,但是没有用。
以下是我的尝试:
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 Application Thread“java.time.format.DateTimeParseException:Text'Tue May 17 08:29:00 BRT 2011'无法在索引0处解析”
答案 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。
感谢!!!