grails - Groovy日期解析错误

标签 grails groovy

我的程序中有一段代码试图解析日期,然后将其设置为等于这样的对象的属性:

if (newIndividualRecord.dateOfBirth == null || newIndividualRecord.dateOfBirth == "-")
    newIndividualRecord.dateOfBirth = null
else {
    ​def date = { ->    
        try  {    
            Date.parse('dd-MM-yyyy', newIndividualRecord.dateOfBirth)
        }
        catch(e) {
            newIndividualRecord.dateOfBirth = null
            /* Should an incorrectly formatted date be reported as an error here? */
        } 
    }()​
    if (date.getClass() == java.util.Date)
        newIndividualRecord.dateOfBirth = date
}

我在读取为​def date = { ->的行中收到此错误:
| Error 2014-07-29 20:46:15,892 [http-bio-8080-exec-7] ERROR errors.GrailsExceptionResolver  - MissingPropertyException occurred when processing request: [POST] /FatcaOne_0/customer/upload - parameters:
dataTypegrp: 1
fileTypegrp: 1
No such property: ​ for class: java.util.Date
Possible solutions: day. Stacktrace follows:
Message: No such property: ​ for class: java.util.Date
Possible solutions: day
    Line | Method
->>  788 | $tt__processNewIndividualRecordFlags in com.twc.fatcaone.FileImportService$$EOlRGIsK

我似乎无法弄清楚这个错误是什么意思。任何帮助将不胜感激。谢谢。

最佳答案

它尝试在日期上使用属性”(空字符串)。该属性不存在,并且出现错误No such property: ​ for class: java.util.Date

我无法重现该错误。

这可以(使用grails 2.4.2),也可以在所有没有if / else的情况下使用。如果源值为null或“-”,则如果解析成功,它将抛出并返回null或Date

    def record = [:]
    //record.dateOfBirth = "-"

    record.dateOfBirth = {
        try {
            Date.parse ('dd-MM-yyyy', record.dateOfBirth)
        }
        catch (Exception ignore) {
            null
        }
    }()

关于grails - Groovy日期解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25024884/

相关文章:

java - 脚本修改后部署的 Web 应用程序中发生 Groovy 转换异常

java - 如何将 JUnit 测试类中的一个方法的回滚设置为 false?

grails - 是否有必要冲洗服务?

grails - grails:如何在remoteFunction中传递参数

grails - 如何将数据绑定(bind)到具有嵌套属性的命令对象? (非域对象)

grails - 使用groovy替换文件中的字符串

Grails getter 写入数据库?

grails - DWR是否启用了grails登录?

groovy - groovy 中的 splat 运算符?

xml - 如何使用 GPathResult 获取下一个 sibling