0

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

我得到这个:'Tue May 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 应用程序线程”中的异常 java.time.format.DateTimeParseException:无法在索引 0 处解析文本 'Tue May 17 08:29:00 BRT 2011'

4

1 回答 1

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。

谢谢!!!

于 2015-10-07T18:35:28.623 回答