2017-04-03 1 views
0

GWTの新機能です。GWTはBSTのようなタイムゾーンを解析できませんEDT

"dd-MMM-yyyy HH:mm z"の形式で日付を解析しようとしましたが、タイムゾーンがEDTまたはBSTの場合は例外が発生します。

GWTは解析中にこれらのタイムゾーンをサポートしていませんか?もしそうなら、私はEDTを使用して日付を解析するために使用できる代替方法がありますか?

助けてください。

コードスニペット:

DateTimeFormat dateParser = DateTimeFormat.getFormat("dd-MMM-yyyy HH:mm z"); 
String fomattedDate = dateParser.format(date,Timezone.createTimeZone(TimeZoneConstants.americaNewYork)); 
Date newDate = dateTimeParser.parse(formattedDate); 

この行は私に例外を提供します。

DateTimeFormatのドキュメントを読んだ後、それは解析中により少ない数のタイムゾーンをサポートすると言われました。

+1

使用しているコードを共有できますか?あなたが行っている呼び出しがブラウザにこれらのタイムゾーンを渡しているかどうか、そしてそれらを解析していないJS(GWTフレームワークではない)であることを確認しましたか? –

+0

こんにちはコリン私はコードスニペットを添付しました。見て、あなたの入力を共有してください。 – Prakhar

+0

フォーマットを 'dd-MMM-yyyy HH:mm Z' - 大文字' Z'をタイムゾーンとして変更すると動作します。 – Adam

答えて

2

このコードは、私の作品:

TimeZoneConstants timeZoneConstants = GWT.create(TimeZoneConstants.class); 
DateTimeFormat dateParser = DateTimeFormat.getFormat("dd-MMM-yyyy HH:mm Z"); 
String formattedDate = dateParser.format(date, TimeZone.createTimeZone(timeZoneConstants.americaNewYork())); 
Date newDate = dateParser.parse(formattedDate); 

私は延期の結合を介してTimeZoneConstantsを作成し、dd-MMM-yyyy HH:mm Zにフォーマット(資本Z)を変更しました - zと私は確かにIllegalArgumentExceptionを得ませんでした。

問題が解決しない場合は、解析機能を詳細に調べて、問題の原因を突き止めてください。

+0

アダムに感謝します。もう1つ質問がありますが、java.util.Dateオブジェクトに解析後の値を置くと、フォーマットされた日付がGMTのタイムゾーンに変換されます。どのように私はEDTのタイムゾーンでそれを保持し、日付オブジェクトを置くことができますか?実際には、このオブジェクトの値を解析したら設定する必要があります。 – Prakhar

+0

java.util.Dateは常にブラウザのタイムゾーンを持っているので、GWTではほとんど可能ではないと思います。たとえば、[GWTのクライアントサイドタイムゾーンのサポート](http://stackoverflow.com/questions/1686448/client-side-time-zone-support-in-gwt)の質問を確認するか、別の質問をしてください。私は解析を手伝うことができてうれしいです。 – Adam

関連する問題