2010-12-08 11 views
0

Javaソースコードにjava.util.Dateまたはjava.sql.Date属性を持つValueObjectがあり、Flex-AS3には[RemoteClass]によってマップされたDTOがあります日付AS3タイプ。 DateFieldコンポーネントで2010-09-05形式のYYYY-MM-DD形式の日付をFlexに設定してJavaに送信すると、Javaは2010-09-04にフレックスとJavaの違いを示しますFlex-AS3からJava EJBサービスに日付を送信する際の問題

Java EJB Service + GraniteDS + RemoteObjectを使用して通信しています。

ありがとうございます!

+1

Application Serverが設定されているGMTと、FlexアプリケーションをテストしているシステムのGMTに違いがありますか? Liferayではこの問題が発生しています.TermincatはGMT + 1でWindows上でアプリケーションをテストしていたときに、デフォルトでGMT + 0を使用するように設定されていました。それで私が元に送っていた間。 2010-09-05 FlexからTomcatに来ていたのは2010-09-04 23:00 – 2DH

答えて

1

フレックスとバックエンドの間で日付を交換する最も良い方法は、文字列リテラルを使用することです。それ以外の場合は、クライアントとサーバーのタイムゾーンの違いを考慮する必要があります。そのため、異なる日付が表示されます。 stackoverflowを検索する場合、それについてもっと議論するトピックがあります。

+0

おそらく最も簡単な方法かもしれませんが、私はほとんどそれが「ベスト」であるとほとんど思いません。次のような状況を考えてみましょう。「12時前にお店でクリスマスツリーを購入すると、2つの無料のガラス球が用意されます」というSMSキャンペーンを準備しています。したがって、開始日は2010-12-24 09:00に、終了日は2010-12-24 12:00に設定しています。シカゴの2010年12月24日午前8時にそれをやっているとしましょう。そのデータベースはワルシャワにあります(それは7時間の違いです)。私はあなたがここで問題を見ることができることを願っています。シカゴの午前8時にワルシャワでは午後3時ですので、決して始まらないようにキャンペーンを定義してください。 Dateとして渡された日付では、この問題は存在しません。 – 2DH

+0

はい、タイムゾーンの違いを気にするので、あなたの場合は日付を日付として渡すことになります。私のケースのほとんどはそれを暗示していませんでした。 –

関連する問題