如何将字符串值转换为Java中的日期?

时间:2015-10-07 18:07:26

标签: java ms-access jackcess

我正在尝试从访问(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处解析”

1 个答案:

答案 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。

感谢!!!