NSDate日期字符串转换为java.util.date

NSDate日期字符串转换为java.util.date,java,ios,grails,Java,Ios,Grails,我有一个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); 格式化日期显示为:

我有一个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);
格式化日期显示为:Sun Jan 22 20:47:27 PST 2012

尝试执行save()时,出现以下错误:

org.springframework.validation.BeanPropertyBindingResult:1个错误

字段“StartDate”上的对象“com.test.date”中的字段错误:已拒绝 价值[Sun Jan 22 20:47:27 PST 2012];代码 [typeMismatch.com.test.date.eventStartDate、typeMismatch.StartDate、typeMismatch.java.util.date、typeMismatch]; 论据 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码[com.test.date.StartDate,StartDate];参数[];默认值 消息[开始日期];默认消息[转换属性失败] 类型为“java.lang.String”的值为的必需类型“java.util.Date” 属性“StartDate”;嵌套异常为 java.lang.IllegalStateException:无法转换类型的值 [java.lang.String]到属性的必需类型[java.util.Date] “StartDate”:未找到匹配的编辑器或转换策略]

谁能告诉我这有什么问题,我需要调查什么

编辑:

实际上,即使我执行以下操作,也会出现错误:

object.date = new Date()
object.save()
这不是由于格式问题!!
谢谢

我认为您的代码并没有如图所示进行编译,但在任何情况下,您似乎正在格式化日期,然后立即存储(并最终尝试保存)其字符串表示形式。只需删除额外的不必要的字符串转换:

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

我认为您的代码并没有如图所示进行编译,但在任何情况下,看起来您都在格式化日期,然后立即存储(并最终尝试保存)其字符串表示形式。只需删除额外的不必要的字符串转换:

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

难以置信!!!!我花了两天时间来解决这个问题,结果发现我使用的Grails域类属性名就是问题所在。我之前使用的是“eventStartDate”,当我把它改为“DOB”时,它开始工作得很好


我对Grails非常陌生,对命名限制不是很确定,但我学到了一个很好的教训:不要忽略允许的命名;)

难以置信!!!!我花了两天时间来解决这个问题,结果发现我使用的Grails域类属性名就是问题所在。我之前使用的是“eventStartDate”,当我把它改为“DOB”时,它开始工作得很好


我对Grails非常陌生,对命名限制不是很确定,但我学到了一个很好的教训:不要忽略允许的命名;)

对不起,我想让这篇文章更简单,但弄错了。我实际上是在把格式化程序的结果放入一个日期。我已经编辑了这篇文章。很抱歉,我试图使文章更简单,但弄错了。我实际上是在把格式化程序的结果放入一个日期。我已经编辑了这篇文章。