我需要验证字符串是否采用ISODateTimeFormat.dateTimeNoMillis()格式。
final DateTimeFormatter dateHourMinuteSecondFormatter =ISODateTimeFormat.dateTimeNoMillis();
String s = "2012-W12-12";
try {
dateHourMinuteSecondFormatter.parseDateTime(s);
} catch (IllegalArgumentException e) {
e.setMessage("exception thrown);
}
它应该抛出异常,因为日期格式错误,但事实并非如此。 还有什么我需要补充的吗?
答案 0 :(得分:2)
不,你不需要做任何事情。
我怀疑实际上是抛出示例,但您的消息诊断不正确。使用Joda Time 2.1时,这对我来说当然失败了:
import org.joda.time.*;
import org.joda.time.format.*;
public class Test {
public static void main(String[] args) throws Exception {
DateTimeFormatter formatter = ISODateTimeFormat.dateTimeNoMillis();
String s = "2012-W12-12";
try {
DateTime dt = formatter.parseDateTime(s);
System.out.println(dt);
} catch (IllegalArgumentException e) {
System.out.println(e);
}
}
}
输出:
java.lang.IllegalArgumentException: Invalid format: "2012-W12-12" is malformed
at "W12-12"