有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在grails中显示我们使用groovy运行SQL语句得到的日期?

当我试图格式化oracle.sql.TIMESTAMP中的日期时,我遇到了一个异常。如何设置格式

当我试图从数据库中检索日期时,我正在使用groovy获取数据:

Groovy doc but it doesn't have anything particular to date

     // Part of the code 
      SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss:SSS")
        def sql = new Sql(dataSource)
        sql.eachRow('''select dateCreated from User'''){
           row->
           def dateCreated
           if(row.dateCreated != null){ // I am getting the object as oracle.sql.TIMESTAMP.
            dateCreated= df.format(row.dateCreated)
           }
        }

我得到了这样的例外

2015-11-05 14:22:33,755 [http-8083-3] ERROR errors.GrailsExceptionResolver - Exception occurred when processing request: [GET] /getUsers - parameters: _dc: 1446713474579

Stacktrace follows:

java.lang.IllegalArgumentException: Cannot format given Object as a Date
at java.text.DateFormat.format(DateFormat.java:281)
at java.text.Format.format(Format.java:140)
at java_text_Format$format.call(Unknown Source)
at com.test.AdminController$_closure15_closure80.doCall(AdminController.groovy:953)
at $Proxy76.eachRow(Unknown Source)
at com.test.AdminController$_closure15.doCall(AdminController.groovy:941)
at com.test.AdminController$_closure15.doCall(AdminController.groovy)
at com.test.SecureController.invokeMethod(SecureController.groovy)
at com.test.AdminController$_closure21.doCall(AdminController.groovy:1061)
at com.test.AdminController$_closure21.doCall(AdminController.groovy)
at org.grails.jaxrs.web.JaxrsFilter.doFilterInternal(JaxrsFilter.java:46)
at java.lang.Thread.run(Thread.java:662)


共 (2) 个答案

  1. # 1 楼答案

    无法将给定对象格式化为日期,此错误清楚地表明,首先需要键入要更新的结果,然后对其进行格式化

    Date date = Date.parse("yyyy/MM/dd HH:mm:ss",row.dateCreated)
    

    这应该行得通