需求:把“2016-12-15T00:46:28+08:00”字符串转成java中的Date,刚开始使用jdk内置的SimpleDateFormat来实现:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ssz");
String publishDate = "2017-01-05T09:02:11+08:00";
sdf.parse(publishDate);
执行代码,抛出以下异常:
Exception in thread "main" java.lang.IllegalArgumentException: Illegal pattern character 'T'
看来SimpleDateFormat不能解析字符’T’,在网上搜了才知道这种格式是国际标准的格式【ISO 8601 format】,【joda-time】支持解析这种格式的字符串,通过toDate方法就能获取java中的Date,如下:
new DateTime(publishDate).toDate();
参考资料:
http://stackoverflow.com/questions/6406470/java-simpledateformat