时间值在视图中显示时发生变化?

时间:2018-11-05 06:53:38

标签: grails grails-3.3.x

我面临一个奇怪的问题,即grails 3次绑定。我有一个简单的域,如下所示

import java.sql.Time

class Marathon {


    String name
    String location
    Time startTime

    static constraints = {
    }
}

在引导程序中,我将默认时区设置为美国/山脉

TimeZone.setDefault(TimeZone.getTimeZone("US/Mountain"))

这是可转换时间的自定义数据转换器

import grails.databinding.converters.ValueConverter

import java.text.SimpleDateFormat

class TimeConverter implements ValueConverter {

    static final String TIME_FORMAT = "h:mm a"

    boolean canConvert(value) {
        value instanceof String
    }

    def convert(value) {


        def timeZone = TimeZone.getTimeZone('US/Mountain')
        def formatter = new SimpleDateFormat(TIME_FORMAT.replace('yyyy', 'yy'))
        if (timeZone) formatter.setTimeZone(timeZone)

        return new java.sql.Time(formatter.parse(value).getTime())

    }

    Class<?> getTargetType() {
        java.sql.Time
    }
}

这是问题。

时间在数据库中存储正确。即当我将通过10:00 AM的记录保存为时间参数时,它将保存为10:00:00

enter image description here

但是当我检索记录并在视图中显示时间时,显示的时间是21:30:00,这是9:30 PM,这是不正确的。是什么原因导致这种自动时间转换?感谢您的帮助。我正在使用grails 3.3.8。

hang

0 个答案:

没有答案