簡體   English   中英

NSDate日期字符串轉換為java.util.date

[英]NSDate date string conversion to java.util.date

我有一個grails服務器,它接收具有NSDate的JSON請求。 我收到的日期具有以下格式:

2012-01-23 04:47:27 +0000

我需要將其轉換為JAVA數據格式才能存儲。 我正在做以下轉換:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
Date date = (Date)formatter.parse(request.JSON.StartDate);

格式化日期顯示為:PST 2012年1月22日星期日20:47:27

當我嘗試執行save()時,出現以下錯誤:

org.springframework.validation.BeanPropertyBindingResult:1個錯誤

字段“ StartDate”上的對象“ com.test.date”中的字段錯誤:拒絕的值[Sun PST 2012年1月22日20:47:27]; 代碼[typeMismatch.com.test.date.eventStartDate,typeMismatch.StartDate,typeMismatch.java.util.Date,typeMismatch]; 參數[org.springframework.context.support.DefaultMessageSourceResolvable:代碼[com.test.date.StartDate,StartDate]; 參數[]; 默認消息[StartDate]]; 默認消息[無法將屬性'StartDate'的'java.lang.String'類型的屬性值轉換為所需的'java.util.Date'類型; 嵌套異常為java.lang.IllegalStateException:無法將屬性“ StartDate”的[java.lang.String]類型的值轉換為所需的類型[java.util.Date]:未找到匹配的編輯器或轉換策略]

誰能告訴我這有什么問題,我需要研究什么?

編輯:

即使執行以下操作,我實際上也會收到錯誤:

object.date = new Date()
object.save()

這不是由於格式化! 謝謝!!

我不認為您的代碼會按照所示方式進行編譯,但是無論如何,您似乎都在格式化日期,然后立即存儲(並最終嘗試保存)其String表示形式。 只需刪除多余的不必要的轉換為String:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
Date date = formatter.parse(request.JSON.StartDate);

難以置信的!!!! 我在此問題上苦苦掙扎了兩天,事實證明,我使用的Grails域名類屬性名稱是問題所在。 我之前使用的是“ eventStartDate”,當我將其更改為“ DOB”時,它可以正常運行。

我對Grails還是很陌生,對命名限制不是很確定,但是我學到了一個很好的課程,不要忽略允許的命名;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM