Mysql Grails时区问题,应用程序方面和Gorm entiteis中

Mysql Grails时区问题,应用程序方面和Gorm entiteis中,mysql,linux,grails,groovy,timezone,Mysql,Linux,Grails,Groovy,Timezone,好的,我遇到了一个最奇怪的问题,我刚刚开始在一个grails应用程序中体验到这个问题,它可以正常工作两个月 应用程序部署在Linux/Tomcat 6上,MySQL是后端的DBMS 在linux提示符下键入日期时,我得到以下输出: $>日期 2010年8月8日星期日03:52:06 PKT 其中,正如在Grails应用程序中一样,new Date()返回当前系统日期后5小时的日期。应用程序中显示的时区是GMT。最初不是这样。不管怎样,我确实在bootstrap中将时区默认设置为GMT+5,并重新

好的,我遇到了一个最奇怪的问题,我刚刚开始在一个grails应用程序中体验到这个问题,它可以正常工作两个月

应用程序部署在Linux/Tomcat 6上,MySQL是后端的DBMS

在linux提示符下键入日期时,我得到以下输出:

$>日期 2010年8月8日星期日03:52:06 PKT

其中,正如在Grails应用程序中一样,new Date()返回当前系统日期后5小时的日期。应用程序中显示的时区是GMT。最初不是这样。不管怎样,我确实在bootstrap中将时区默认设置为GMT+5,并重新部署了应用程序,希望事情会得到解决

现在,new Date()已解决,但出现了一个新问题。对于所有具有日期字段的域类,这些字段映射到某些数据库表,并且具有仅日期对应的属性。我在GUI中得到一个日期,如下所示: 2010-08-08 05:00:00

注意,05小时自动添加到日期字段中,在数据库中,字段中的值是date only,没有时间信息,实际上我根本不需要时间信息,它应该是00:00:00,就像这个问题出现之前一样

很奇怪,不是吗。请帮帮我,因为我已经迷路了,尝试了很多事情,却没有找到解决办法。遗憾的是,一个完美的应用程序在两个月后开始产生这样的bug

请提供帮助,期待积极和快速的响应

问候,,
Alam Sher

我的第一个问题是,如果你不在乎时间,为什么要在UI中显示它

看起来Grails假设数据库使用GMT,并在日期上添加了5。您的数据库设置为什么时区?应用程序和数据库可能应该是同步的

如果希望在UI上显示的时间始终为零,可以使用Groovy增强的java.util.Date类上的clearTime()方法将时间归零。请看这里:

请注意,我通常使用日历通过传入时区来创建日期:


def date=Calendar.getInstance(TimeZone.getTimeZone(“CST”)).time

我没有在GUI上显示时间,但是在实体日期和系统的当前日期之间有一个比较。e、 g.如果实体的日期>当前日期,则我必须在GUI上显示该特定实体的状态字符串(已阻止):)我已选中“立即选择()”;在MySQL中,返回的时间是正确的。其中,即使在普通Java文件中,as new Date()也返回了一个错误的日期,默认时区为“GMT”。MySQL是如何正确获取时区信息的,以及为什么java会以某种方式覆盖系统时区?服务器Java版本:Java(TM)SE运行时环境(build 1.6.0_19-b04)