我的 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/