2012-01-23 12 views
1

У меня есть сервер grails, который получает запрос JSON с NSDate. Дата Получаю имеет следующий формат:Преобразование строки даты NSDate в java.util.date

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); 

Отформатированная дата выходит как: Sun Jan 22 20:47:27 PST 2012

Когда я пытаюсь сделать сохранить(), я получаю следующее ошибка:

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

К сожалению, я пытался сделать пост проще и сделал ошибку. Я фактически помещал результат форматирования в Дату. Я редактировал сообщение. – iKT

0

Необратимый !!!! Я боролся два дня с этой проблемой, и выясняется, что имя свойства класса Grails, которое я использовал, является проблемой. Я использовал «eventStartDate» раньше, и когда я сменил его на «DOB», он начал работать отлично.

Я новичок в Grails и не очень уверен, что об ограничениях именования, но я получил хороший урок, чтобы не обращать внимания на допустимое именование;)

Смежные вопросы