我使用grails 2.4和bootstrap日期选择器。
我试图保存并更新我的日期并验证它们。我将BindingFormat转换为日期对象。
@BindingFormat('MM/dd/yyyy')
Date expenseDate
当我保存日期时,我的验证器会以下列格式看到它。
E MMM dd HH:mm:ss Z yyyy
因此,当我在域验证器中验证日期时,我使用以下代码。
final static DateFormat DATEFORMAT = new SimpleDateFormat('E MMM dd HH:mm:ss Z yyyy')
static constraints = {
expenseDate validator: {
try {
DATEFORMAT.parse(it.toString())
return true
} catch (ParseException e) {
return 'invalidDateFormat'
}
}
}
现在在新记录中,一切似乎都正常工作,直到我去修改记录。当我尝试修改记录时,一旦页面加载,我会自动获得验证失败,因为数据库返回的格式是 2016-01-01 00:00:00.0 我该如何处理获取保存和返回的日期对象的格式是否相同,以便我可以正确验证它们?