JQGrid日期格式化程序没有正确应用本地时间偏移:Grails



我在数据库(MySql)中有一个简单的表,其中包含标准日期格式的日期。我正在grails中做一个简单的选择,并将输出呈现为JSON格式,以便jqgrid拾取。

在jqgrid中,我有以下单元格定义:

{name : 'processedDate',width:110,formatter:'date', formatoptions: {srcformat: 'Y-m-dTH:i:sZ',newformat:'d/m/Y H:i'}}

我希望在屏幕上看到的日期是31/03/2013 22:06这是在mysqlworkbench中显示的这是我从另一个grails gsp函数

中得到的
<g:formatDate format="dd/MM/yyyy  HH:mm" date="${emailAudit.pollDate}"/>

但是显示jqgrid单元格 31/03/2013 21:06

我今天才注意到这一点,因为我们已经进入夏令时,所以它是一个小时。

来自grails控制器的JSON日期是 2013 - 03 - 31 t21:06:45z (似乎又错过了一个小时,但当注销时,它显然是由grails转换的)。

现在,因为在gsp formatdate函数中,它应用了本地偏移量,就像mysqlworkbench的情况一样。

在grails中创建JSON时手动应用偏移量的解决方案是什么,如果是这样,最好的方法是什么,或者在JQGrid中的格式选项中是否有我缺少的东西?

使用其他人类似的解决方案进行排序(显然来自stackoverflow)。我刚刚在引导程序中创建了一个对象编组器来处理日期。它很脏,感觉不是100%,但它是有效的(并且涵盖了我代码中的所有日期到JSON区域),现在必须这样做。欢迎提出任何其他建议,我相信肯定有比这更好的方法。

import grails.converters.JSON;
class BootStrap {
    def init = { servletContext ->
        JSON.registerObjectMarshaller(Date) {
            TimeZone tz = TimeZone.getDefault();
            def dateFormat = 'yyyy/MM/dd HH:mm'
            return it?.format(dateFormat,tz)
        }

相关内容

  • 没有找到相关文章

最新更新