java - Grails 将日期时间保存为 UTC 时间,但将其读取为本地服务器时间?

标签 java datetime grails timezone grails-2.0

我的 Grails 应用程序中有以下行将默认时区设置为 UTC:

TimeZone.setDefault(TimeZone.getTimeZone("UTC"))

我有一个带有 dateCreated 字段的 Audit 实体:

class Audit {
    Date dateCreated
    String message
}

然后我创建并保存它的一个实例:

def audit = new Audit(message: "Testing audit message")

这会将其作为 UTC 时间正确保存到我的数据库中。但是,当我尝试读回它时:

audit = Audit.get(1)

时间戳被读回为本地时间。因此,如果我的时区是 +1 UTC,当前本地时间是 12:34:56 BST,那么将保存到数据库中的是 11:34:56,但是当我回读时,它变成了 11:34:56 BST。有谁知道如何解决这个问题,以便 Grails 将时间戳读回为 UTC 并相应地进行转换?

最佳答案

Bootstrap.groovy

 TimeZone.setDefault(TimeZone.getTimeZone("UTC"))

JAVA_OPTS 上。

-Duser.timezone=UTC

来源:This thread

关于java - Grails 将日期时间保存为 UTC 时间,但将其读取为本地服务器时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12208305/

相关文章:

java - 使用java的泰米尔语字符分割

c# - 在 c# 日期和 sql 日期时间之间转换的简单方法

javascript - 在一行中添加 JavaScript 中的日期

ruby - 在ruby中设置DateTime的时间部分

grails - Grails HttpSecurity-允许POST

macos - GGTS 3.6.4(OSX 64位)错误-系统属性http.nonProxyHosts已设置为本地

hibernate - hibernate 过滤器不适用于父域

java - 如何启动具有无限内存的 JVM?

java - 在大型应用程序中使用更好的方法

java - 如何使用mockito答案从模拟方法修改void方法的输入参数