代码如下
public static void main(String[] args) {
String text = "2018-11-26-13:50:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-hh:mm:ss");
sdf.setLenient(false);
try {
System.out.println(sdf.parse(text));
} catch (ParseException e) {
// 抛出异常 java.text.ParseException: Unparseable date: "2018-11-26-13:50:00"
e.printStackTrace();
}
}
setLenient(false)时,日期中小时在上午1点到12点正常运行,在下午13点到00点报错。
求大神解惑。
setLenient
方法是设置是否可以对给定格式进行错误时候的宽容处理。当设置值为false的时候,不对给定字符串进行宽容处理,此时hh表示的是12小时进制的时间,所有只有12个小时是好用的。修改为HH,表示24小时进制的时间即可。