endString = "2015-03-1111a17a7";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(sdf.parse(endString).getTime()));
这段代码,不会报异常
而是显示出
2018-03-15
感觉还是写的不够全面
大家解析日期的时候一般用什么?
joda time吗?
------解决思路----------------------
jdk的dateformat应该是把String类型转为毫秒数再计算日期的吧,可能是把1111a17a7这个也转成对应的毫秒数了所以跟前面年月的加起来就得到一个很大的数值。用joda吧,好用,安全,还可以转回来= 。=
------解决思路----------------------
一般情况下,日期都是格式化好的,用SimpleDateFormat解析就足够了
------解决思路----------------------
虽然不知道joda time是个啥,但是我觉得jdk 8 的日期处理真的很好。
jdk7的话,还是依然用SimpleDateFormat.