私はここで多くの投稿を読みました:GWTの日付処理。
特に私と一緒にコードを打ったのはこれでした
GAEサーバーからGWTクライアントに日付とタイムゾーンを送信する
とにかく、私が取り組んでいるプロジェクトでは、グリッドにラベルとして日、時間、分間隔を表示できるようにする必要があります。私のチームは、すべての日付/時刻インスタンスがサーバーからISO8601文字列形式でクライアントに渡されるアプローチを採用しています。サーバーのタイムゾーンは、クライアントによって尊重されます。bizのユースケースでは、すべての日付/時刻インスタンスが「市場時間」にあるため、アプリにアクセスするすべてのブラウザーは、「市場時間」タイムゾーンの日付を表示して操作します。夏時間が有効)またはGMT-06:00(標準時が有効な場合)。
ここにGithubにいくつかのソースを投稿しました:
https://github.com/fastnsilver/gwt-datehandling-example
特に...
およびGWTTestCase
誰かが私たちが日付処理に採用しているユーティリティ(およびテスト)を凝視し、私たちが見ていないものを見るのを手伝ってくれることを期待して。
編集
基本的な問題は、CSTimeUtil#hoursInDay(Date)
「移行日」の本番モードで正しく計算されないことです。このメソッドは、他のメソッド(CSTimeUtil#dateToHour(Date)
およびなどCSTimeUtil#labelsForDay(Date)
)で使用されます。
の現在の実装でアプリケーションをデプロイしましたが、機能してCSTimeUtil
いるように見えますが、完全ではありません。たとえば、OSのタイムゾーンがUSまたはmvn gwt:test
以外のさまざまなタイムゾーンに設定されているWindowsでGWTモードまたは本番モードで実行されている場合、代替のテスト結果に本当に混乱します。 GMT-05:00
GMT-06:00