我正在使用Grails插件,http://grails.org/plugin/jquery-date-time-picker 日期和日期时间插件非常有效。但是,只是时间问题。
我试图仅将时间用于datetimepicker。我的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点”的params,但它从未在addressInstance中设置,我相信因为日期丢失了。
答案 0 :(得分:0)
默认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所示的自定义属性编辑器,以使用自定义格式自动绑定日期。如果您不想将格式应用于所有日期字符串,则不希望这样做。在这种情况下,我认为前一种方法将是有用和容易的。