【问题标题】:Grails application showing wrong dateGrails 应用程序显示错误的日期
【发布时间】: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


【解决方案1】:

导致您出现症状的 SQL Server JDBC 驱动程序存在一个已知问题。 Here's 相关问题。

解决办法

要解决此问题,您可以安装更新的 JDBC 驱动程序here

【讨论】:

    猜你喜欢
    • 2016-01-19
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    相关资源
    最近更新 更多