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)
# 1 楼答案
无法将给定对象格式化为日期,此错误清楚地表明,首先需要键入要更新的结果,然后对其进行格式化
这应该行得通
# 2 楼答案
如果你说的是
oracle.sql.TIMESTAMP
,请看这里http://docs.oracle.com/cd/E18283_01/appdev.112/e13995/oracle/sql/TIMESTAMP.html这个类有很多有用的方法将其转换为
java.sql.Date
(dateValue())或java.sql.Timestamp
(timestampValue())等一旦你找到了这些,就很容易把它们转换成
java.util.Date
。例如,以这里的厕所为例How to convert from java.sql.Timestamp to java.util.Date?