Java里面SimpleDateFormat

在Java代码里面我们经常使用java.text.SimpleDateFormat来进行日期和字符串间的转换。在使用它将字符串转化为日期时并不是很严格的。
比如:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = df.parse("2013-19-34 32:90:100");

这段代码不会抛出异常,得到的日期会自动解析成为合法的,上面的例子返回的日期为:
2014-08-04 09:31:40
由于这个是智能完成的,很容易被忽略掉而导致错误。

以上有2种解决办法:
1. 调用setLenient(false)来进行严格分析
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setLenient(false);
Date date = df.parse("2013-19-34 32:90:100");

这样解析时就会出java.text.ParseException
2. 解析完成后,将解析的Date通过SimpleDateFormat重新format一遍,然后比较输入和输出日期是否相等。

你可能感兴趣的:(Java里面SimpleDateFormat)