これが私がやろうとしていることです。私はいくつかの例の値で以下を投稿しているフォームを持つ gsp ビューを持っています:
params.startTime: 01:00:00 AM、params.startDate: 2013-01-01、params.timeZone: US/Central
これが私のドメインクラスのコードです
class MyClass {
DateTime startDate
}
static mapping {
startDate type: PersistentDateTimeWithZone, {
column name: "start_date_time"
column name: "start_date_zone"
}
そして、ここに私のコントローラーからのいくつかのコードがあります
//This is a service i created to return the UTC id of a long time zone
def tzs = new TimeZoneService()
params.timeZone = tzs.getTimeZoneId(params.timeZone)
def startTimeZone = DateTimeZone.forID(params.timeZone)
def startDate = new DateTime(params.startDate + "T" + params.startTime, startTimeZone)
これは私のデータベースでは次のようになります。
start_date_time: 2013-01-01 01:00:00
start_date_zone: -06:00
ここで問題です。次のパターンで startTime をフォーマットすると
DateTimeFormatter fmt = DateTimeFormat.forPattern("MMM dd, yyyy h:mm a z");
私のタイムゾーンは、US/Central ではなく、-06:00 と表示されます。私の質問は次のとおりです。DateTime を永続化するためのさまざまなアプローチを試しています。1 つの列だけを使用して日時とゾーンを一緒に保持したい場合、どうすればよいでしょうか? date-time-zone のプロパティが個別のパラメーターとして入ってくる場合、これら 3 つのパラメーターを使用して DateTime を作成する正しい方法は何ですか? 助けてください!前もって感謝します。