SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
Date date = sdf.parse("2018063");
System.out.println(sdf.format(date)); // =>202303
SimpleDateFormat对不符合的时间字符串不抛出异常,而是转换成了一个另类的时间,请问这该怎么让它不符合格式时抛出异常?
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
Date date = sdf.parse("2018063");
System.out.println(sdf.format(date)); // =>202303
SimpleDateFormat对不符合的时间字符串不抛出异常,而是转换成了一个另类的时间,请问这该怎么让它不符合格式时抛出异常?
用joda-time
try{
DateTime.parse("2018063", DateTimeFormat.forPattern("yyyyMM"));
} catch(Exception e){
e.printStackTrace();
}
java.lang.IllegalArgumentException: Invalid format: "2018063" is malformed at "3"
4 回答1.4k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答733 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.7k 阅读
2 回答1.3k 阅读
找到答案了,默认采用的是宽松的策略,只要设置this.sdf.setLenient(false);即可启用严格策略