我正在尝试从访问(MDB)数据库转换一些日期值。

我得到的是:“ 2011年5月17日星期二08:29:00 BRT”。
但我要这个:“ 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应用程序线程”中的异常java.time.format.DateTimeParseException:无法在索引0处解析文本“ Tue May 17 Tue May 17 08:29:00 BRT 2011”

最佳答案

@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。

谢谢!!!

08-04 16:14