gpt4 book ai didi

hibernate - JodaTime将DateTime保留为多列

转载 作者:行者123 更新时间:2023-12-02 14:53:45 26 4
gpt4 key购买 nike

所以这就是我想要做的。我有一个带有窗体的gsp View ,该窗体发布了一些示例值:

params.startTime:01:00:00 AM,params.startDate:2013-01-01,params.timeZone:US / Central

这是我的域名类(class)中的一些代码

    class MyClass {
DateTime startDate
}
static mapping {
startDate type: PersistentDateTimeWithZone, {
column name: "start_date_time"
column name: "start_date_zone"
}

这是我 Controller 的一些代码
    //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,而不是美国/中部。这是我的问题:我正在尝试不同的方法来保留DateTime。如果我只想使用一列将日期时间和区域保持在一起,我该怎么做?如果我的date-time-time-zone属性作为单独的参数进入,用这三个参数构建DateTime的正确方法是什么?请帮忙!提前致谢。

最佳答案

为了解决此错误,您需要获取时区偏移量的UTC值。我相信它通过Joda DateTimeZone提供给您的输出是America / Chicago,America / Eastern,America / Pacific等,因此,如果您要使用US / Central这样的自定义值,则必须创建一个映射要与这些偏移量匹配的任何值。

希望这可以帮助!

关于hibernate - JodaTime将DateTime保留为多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15078971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com