我使用的是Grails插件,date http://grails.org/plugin/jquery-date-time-picker datetime插件工作得很好。然而,时间是有问题的。
我尝试将时间仅用于日期时间选择器。我的Config.grovy如下所示。
jqueryDateTimePicker {
format {
java {
datetime = "dd/MM/yyyy HH:mm"
date = "dd/MM/yyyy"
}
picker {
date = "'dd/mm/yy'"
time = "'hh:mm tt'"
}
}
}我的GSP代码是这样的。
<jqueryPicker:time name="openFrom" id="openFrom" value="${addressInstance?.openFrom}" pickerOptions="[dateFormat: '', timeOnly: true, hourGrid: '4', minuteGrid: '15', timeFormat: 'hh:mm tt']"/>我的控制器是
def addressInstance = new Address(params)在这里的控制器中,我可以看到参数的时间是"7:00 am“,但它从来没有在addressInstance中设置过,我相信是因为日期丢失了。
发布于 2013-07-15 01:26:11
默认的Date绑定采用常规日期格式yyyy-MM-dd hh:mm:ss.S。
为了将openForm日期绑定到addressInstance,您可以显式地将其设置为:
//where params.openForm is String like "7:00 AM"
addressInstance.openForm = Date.parse("h:mm a", params.openFrom)Date.parse()将字符串解析为当前格式以返回Date对象。在上面的例子中(你只关心时间),你会得到纪元(1970年1月1日),时间是上午7点
def date = Date.parse("h:mm a", "7:00 AM")
//prints Thu Jan 01 07:00:00 EST 1970
//To get the time string from the date stored in db
date.format("h:mm a") //Prints 7:00 AM您还可以查看是否可以注册一个自定义属性编辑器,如here所示,以使用自定义格式自动绑定日期。如果您不想将此格式应用于所有日期字符串,则不希望执行此操作。在这种情况下,我认为前一种方法将是有用和简单的。
https://stackoverflow.com/questions/17640974
复制相似问题