温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Java unparsable date SimpleDateFormat
java simpledateformat

其他 - Java无法解析的日期SimpleDateFormat

发布于 2020-03-28 23:19:51

我有一个约会,看起来像这样:

Sun Dec 29 00:24:09 CET 2019

我有一个小的实用程序方法,可以将字符串日期从一种格式解析为另一种格式:

public String formatDate(String date, String fromFormat, String toFormat) throws Exception {
        SimpleDateFormat from = new SimpleDateFormat(fromFormat);
        SimpleDateFormat to = new SimpleDateFormat(toFormat);
        return to.format(from.parse(date));
    }

但是,使用上述日期格式,我找不到指示我方法的正确日期格式。根据SimpleDateFormat模式文档,应该(如果没有记错的话)是以下内容(用于Sun Dec 29 00:24:09 CET 2019):

"E M d HH:mm:ss z yyyy"

但是,它引发以下异常:

java.text.ParseException: Unparseable date: "Sun Dec 29 00:24:09 CET 2019"
        at java.text.DateFormat.parse(DateFormat.java:366)
        at com.aptar.simulator.Utils.formatDate(Utils.java:60)

该方法的调用方式如下:

formatDate(exDate, "E M d HH:mm:ss z yyyy", "dd-MM-yyyy HH:mm:ss");

哪里

exDate = "Sun Dec 29 00:24:09 CET 2019"

查看更多

查看更多

提问者
Florian Castelain
被浏览
44
Smile 2020-01-31 17:22

日期格式应为

EEE MMM dd HH:mm:ss z yyyy

使用这种格式,您的代码可以正常工作。

使用java.timeAPI

LocalDate.parse(datestr, DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss z yyyy")).format("TO DATE PATTERN");

使用java.time包格式化日期的更多详细信息