Java Grails日期构造函数和解析日期

Java Grails日期构造函数和解析日期,java,excel,date,grails,Java,Excel,Date,Grails,我有一个excel电子表格,其中日期是这样写的:6/10/2012。现在,Grails正在使用excel导入插件读取它们,当我要求它打印它们时,它会将它们打印为:2012-06-10。日期以地图的形式出现在我的服务中 map: [name: name, date: date, price: price] 我试着做: Date date = Date(map.date) 当然,我犯了一个错误 2012-06-10 ERROR: Record could not be saved! org.gr

我有一个excel电子表格,其中日期是这样写的:6/10/2012。现在,Grails正在使用excel导入插件读取它们,当我要求它打印它们时,它会将它们打印为:2012-06-10。日期以地图的形式出现在我的服务中

map: [name: name, date: date, price: price]
我试着做:

Date date = Date(map.date)
当然,我犯了一个错误

2012-06-10
ERROR: Record could not be saved!
org.grails.datastore.mapping.validation.ValidationErrors: 2 errors
Field error in object 'com.twc.fatcaone.Record' on field 'date': rejected value [null]; codes            [com.twc.fatcaone.Record.date.nullable.error.com.twc.fatcaone.Record.date,com.twc.fatcaone.Record.da    

我看到一些java.util.Date构造函数已被弃用,因此我对使用它们犹豫不决,但我也在想,解析地图以获取日期并从中形成日期对象的最干净的方法是什么?

它必须是一个字符串
格式
,作为第一个参数,而字符串
日期
作为第二个参数

由于您使用的是Joda time,
LocalDate
上的
toDate()
就足够了
map.date.toDate()
应该给出一个
java.util.date
,不需要再解析了


否则,如果仍要使用
Date.parse
,则第二个参数必须是
map.Date.toString()

Date.parse('MM/dd/yyyyy',map.Date)
?@dmahapatro中的字符串。谢谢您的回复。我尝试了这个方法,也尝试了“yyyy-dd-MM”,但我在两种情况下都得到了这样的结果:Error | 2014-06-10 20:57:15629[http-bio-8080-exec-9]Error errors.grailExceptionResolver-MissingMethodException在处理请求时发生:[POST]/FatcaOne_0/customer/upload无方法签名:static java.util.Date.parse()适用于参数类型:(java.lang.String,org.joda.time.LocalDate)值:[yyyy-MM-dd,2012-06-10]第一个参数必须是字符串格式,第二个参数必须是字符串日期。由于您使用的是joda-time,
LocalDate
上的
toDate()
应该足够了。
map.date.toDate()
应该给出一个
java.util.Date
,不需要再解析了。否则,如果您仍然想使用
Date.parse
,那么第二个参数必须是一个字符串,如
map.Date.toString()
。希望这有帮助。是的,绝对正确。我使用了toDate()不需要更多的解析。谢谢。@dmahapatro将您的评论作为答案发布,以便解决此问题。