所以這就是我想要做的。我有一個gsp視圖,其中包含以下示例值的表單:JodaTime堅持DateTime多列
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");
我的時區出現在-06:00而不是US/Central。這裏是我的問題:我嘗試了不同的方法來保存我的DateTime。如果我想只使用一列來保存日期時間和區域,我該怎麼做?如果我的date-time-zone屬性作爲單獨的參數出現,那麼用這三個參數構建DateTime的正確方法是什麼?請幫忙!提前致謝。