Javaの解析できない日付のSimpleDateFormat

フロリアンCastelain:

私はそのように見えるという日付があります。

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"
スマイル:

日付の形式はでなければなりません

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パッケージを使用します

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=6383&siteId=1