2012-01-23 13 views
1

私はNSDateを持つJSONリクエストを受け取るgrailsサーバーを持っています。私が受け取る日は、次の形式は次のとおりです。NSDate日付文字列からjava.util.dateへの変換

2012-01-23午前4時47分27秒0000

私は店のことができるようにするためにJAVAのデータ形式にこれを変換する必要があります。 )私は(保存をしようとすると日1月22日夜08時47分27秒PST 2012

、私は次の取得:フォーマットされた日付のように出てくる

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

:私は、変換のために次のことをやっていますエラー:

org.springframework.validation.BeanPropertyBindingResult: 1 errors

Field error in object 'com.test.date' on field 'StartDate': rejected value [Sun Jan 22 20:47:27 PST 2012]; codes [typeMismatch.com.test.date.eventStartDate,typeMismatch.StartDate,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [com.test.date.StartDate,StartDate]; arguments []; default message [StartDate]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'StartDate'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [java.util.Date] for property 'StartDate': no matching editors or conversion strategy found]

誰もがこれで間違っていると私はに見て何が必要かを教えていただけますか?

EDIT:

私は実際に私は次の操作を実行しても、エラーが表示されます。

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

これは、フォーマットによるものではありません! ありがとうございます!

答えて

1

あなたのコードはここに示すようにコンパイルされているとは思われませんが、いずれにしても、日付の書式を設定していて、すぐにその文字列表現を保存しています。単なる文字列に余分な不要な変換を削除:信じられないほどの

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

申し訳ありませんが、私はポストに簡単に作るしようとしていたとミスを犯しました。実際には、フォーマッタの結果をDateに入れていました。私は投稿を編集しました。 – iKT

0

を!!!!私はこの問題で2日間苦労し、私が使用していたGrailsドメインクラスのプロパティ名が問題であることが判明しました。以前は「eventStartDate」を使用していましたが、「DOB」に変更したときに完全に動作するようになりました。

私は、Grailsのに非常に新しいと命名制限について非常にわからないが、私は、許容命名を無視しないで良い教訓を学んだ;)

関連する問題