【问题标题】:Groovy/Grails Date.parseGroovy/Grails Date.parse
【发布时间】:2014-12-04 00:25:55
【问题描述】:

在我看来,以下 Groovy 脚本应该会因解析异常而失败:

println Date.parse("yyyy-MM-dd'T'HH:mm:ss","2014-10-06T05:58:00-0500")
println Date.parse("yyyy-MM-dd'T'HH:mm:ss","2014-14-06T05:58:00-0500")
println Date.parse("yyyy-MM-dd'T'HH:mm:ss","2014-10-45T05:58:00-0500")
println Date.parse("yyyy-MM-dd'T'HH:mm:ss","2014-10-06T35:58:00-0500")
println Date.parse("yyyy-MM-dd'T'HH:mm:ss","2014-10-06T05:95:00-0500")

注意:

  • 第二个日期的月份无效
  • 第三个日期无效
  • 第四个日期的小时数无效
  • 第五个日期的分钟数无效

我很确定我知道它实际上在做什么,但这不是我期望发生的。

【问题讨论】:

    标签: grails groovy


    【解决方案1】:

    正如docs 中所写,parse 只是SimpleDateFormat 的包装。可以像this 回答中那样取消设置SimpleDateFormat lenient,但是我想在仅调用Date.parse 时这是不可能的。所以要获得正确的结果,你应该使用严格的SimpleDateFormat

    【讨论】:

    • 谢谢。这就是我解决问题的方法。
    猜你喜欢
    • 1970-01-01
    • 2011-03-05
    • 2016-08-02
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多