在我的grails域中,我有一個字段Date,即java.util.Date。Grails日期被接受爲字符串
在我的控制器中,我使用SimpleDateFormate從params中加載這個日期。
準確地說,假設params.date類似於'20/02/2013 02:30 am'。在控制器中我加載如下:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(「dd/MM/yyyy HH:mm a」); domainInstance.date = simpleDateFormat.parse(params.date)
雖然此語句執行時未檢測到錯誤。但是,當正在保存域實例時,生成的錯誤是
[typeMismatch.Domain.date,typeMismatch.date,typeMismatch.java.util.Date,typeMismatch];參數[org.springframework.context.support.DefaultMessageSourceResolvable:代碼
[無法將'java.lang.String'類型的屬性值轉換爲屬性'date'所需的類型'java.util.Date';嵌套的異常是java.lang.IllegalArgumentException:無法解析日期:無法解析日期:「2013年2月2日02:30」]
你能告訴我哪裏出問題了。我很確定SimpleDateFormat解析字符串日期。爲什麼它接受爲字符串。
大家可以看一下該方法中的全部源代碼?在該行代碼之後(domainInstance.date = simpleDateFormat.parse(params.date)),您可能已使用params中的字符串值重新分配了'date'字段。 – hida 2013-02-13 06:57:37
2.3以來的變化看看這裏:http://grails.1312388.n4.nabble.com/data-binding-dates-in-command-objects-td4651879.html @BindingFormat('MMddyyyy')你也可以設置在Config中使用類似這樣的默認格式。groovy: grails.databinding.dateFormats = ['MMddyyyy','yyyy-MM-dd HH:mm:ss.S','yyyy-MM-dd'T'hh:mm:ss'Z'「] – Vahid 2015-12-08 15:04:27