2

コード:

    DateTimeFormat dateFormat = DateTimeFormat
            .getFormat("EEE MMM dd HH:mm:ss zzz yyyy");

    Date date = dateFormat.parse("Wed May 30 18:33:22 PDT 2012");

結果:

Uncaught java.lang.IllegalArgumentException: Wed May 30 18:33:22 PDT 2012

なんで?

ドキュメントに対してパターンをチェックして再チェックしました。パターンをSimpleDateFormatテスターに​​接続すると、期待される結果も得られますが、これは明らかに決定的なテストではありません。

4

1 に答える 1

4

あなたが言及したドキュメントによると、日付の解析は制限されたサポートを持っています:

解析のタイムゾーンサポートは制限されています。標準のGMTおよびRFC形式のみがサポートされています。タイムゾーンID(America / Los_Angelesなど)、タイムゾーン名(PST、太平洋標準時など)を使用したタイムゾーン指定はサポートされていません。

すなわち

現在の実装では、タイムゾーン解析はGMT:hhmm、GMT:+ hhmm、およびGMT:-hhmmのみをサポートします。

したがって、次のコードは正常に機能します。

    DateTimeFormat dateFormat = DateTimeFormat
            .getFormat("EEE MMM dd HH:mm:ss zzz yyyy");
    Date date = dateFormat.parse("Thu May 31 09:45:21  GMT-07:00 2012");
    GWT.log("Date "+date);
于 2012-05-31T04:32:31.940 に答える