【发布时间】:2015-08-29 17:27:13
【问题描述】:
我使用 grails-2.4.5、SQL Server 2008 R2 数据库开发了一个 grails 应用程序,但遇到了一个奇怪的问题。在我的一个域类中,有一个 Date 数据类型的字段。当我从相应的表单提交数据时,它会正确地将其保存到数据库中,但在显示视图中,日期显示的是两天前的保存日期。例如我输入 1992 年 6 月 8 日,它保存到数据库中为“1992-06-08 00:00:00.0000000”,但在显示视图中它变为“06/06/1992”
我在显示页面中使用了 g:formatDate 标记。 (<g:formatDate format="dd/MM/yyyy"
date="${aaaOrganizationInstance?.dateOfEstablish}"/>)
控制器保存动作:
@Transactional
def save(AaaOrganization aaaOrganizationInstance) {
if (aaaOrganizationInstance == null) {
notFound()
return
}
if (aaaOrganizationInstance.hasErrors()) {
respond aaaOrganizationInstance.errors, view:'create'
return
}
aaaOrganizationInstance.save flush:true
request.withFormat {
form multipartForm {
flash.message = message(code: 'default.created.message', args: [message(code: 'aaaOrganization.label', default: 'AaaOrganization'), aaaOrganizationInstance.id])
redirect aaaOrganizationInstance
}
'*' { respond aaaOrganizationInstance, [status: CREATED] }
}
}
【问题讨论】:
-
您的输入表单的 gsp 代码是什么样的?还有你的控制器。
-
我认为输入表单的 gsp 和控制器没有任何关系,因为我已经通过连接嵌入式内存数据库的 Grails 数据库测试了应用程序,但没有出现问题。无论如何,这是我的日期输入表单视图:
并且控制器的保存动作被添加到主问题中。 -
谢谢伊曼纽尔·罗莎!您提供的链接可以帮助我解决问题。我已经为 SQL Server 下载了更新的 jdbc 驱动程序,问题就解决了。再次感谢您。
-
不客气。我将继续写这个作为答案。
标签: sql-server date grails