私はMultiTimeZoneや現地の日付の経験があまりないので、これに手を汚していますが、どのように、どこから始めればよいのかわからないので、優しくしてください:-)
2種類のDate(Time)フィールドがあります。
- 日付(日、月、年の保存)
- DateTime(1と同じですが、時間を含みます)
Playでプロパティをどのように定義する必要がありますか?
@Formats.DateTime(pattern="MM-dd-yyyy")
public Date reqCompletionDate;
または、JodaTimeを使用する必要があります(これまで使用したことはありません):
@Type(type="org.joda.time.contrib.hibernate.PersistentDateTime")
public DateTime reqCompletionDate;
に行く場合java.util.Date
、どうすればローカルのユーザーDate format
(つまり、yyyy-MM-dd)に変換できますか?フォーマットの問題が原因で自動バインドの再生が失敗するので、カスタムバインダーを作成する必要がありますか?Date
これは私のすべての分野に影響しますよね?
または、すべてのDate(Time)フィールドにgetterとsetterを使用して、ユーザーLocale
に正しい時刻を取得できるようにすることをお勧めします。この場合、Playの自動バインドは失敗しますが、それでもとのカスタムバインダーが必要にDate
なりDateTime
ますか?
それとも私はこれをすべて考えすぎていて、これを別の方法で処理する必要がありますか?あなたの考えをありがとう!
UPDATE: 2012-07-23: I think I will follow these steps:
ステップ1:再生を開始し、UTCタイムゾーンで初期化します
ステップ2:UTCタイムゾーンに従って、すべての日時フィールドを同じ形式にします
ステップ3:できるだけ遅くユーザーの現地時間に変換する
ユーザーが変換を含むフォームを投稿local date (time)
すると、できるだけ早くUTC時間に変換されます。時間があれば、ここにコードを投稿します。