2013-02-13 49 views
0

我有一个非常简单的Scala类:SimpleDateFormat的非宽松作案抛出ParseException的同时解析为有效日期

class StrictDateFormat(pattern: String) extends java.text.SimpleDateFormat { 
    setLenient(false) 
} 

我得到一个ParseException,同时解析有效日期:

new StrictDateFormat("yyyy-MM-dd HH:mm").parse("2013-02-05 16:47") 
java.text.ParseException: Unparseable date: "2013-02-05 16:47" 
at java.text.DateFormat.parse(DateFormat.java:337) 

我已经尝试了一切,它不起作用。

令人惊讶的是,如果我设置了宽大的方法,同时实例化一个SimpleDataFormat,它的工作原理:

new SimpleDateFormat("yyyy-MM-dd HH:mm"){setLenient(false)}.parse("2013-02-05 16:47") 
res0: java.util.Date = Tue Feb 05 16:47:00 CET 2013 

这是没有意义的!这不是我所宣布的班级吗? 为什么我在第一种情况下得到一个ParseException? 这是一个在Java或斯卡拉的错误?

我的Java版本:jdk1.6.0_26 我的斯卡拉版本:2.9.1

回答

2

你需要做的:

class StrictDateFormat(pattern: String) extends java.text.SimpleDateFormat(pattern) { 
    setLenient(false) 
} 

(调用正确的父类的构造java.text.SimpleDateFormat(pattern)代替java.text.SimpleDateFormat

+0

当然!谢谢,我今天必须失明! :-) – 2013-02-13 09:14:15

相关问题