1.上代码
public static void main(String[] args) throws ParseException {
String time1 = "20200803"; //年月日
String time2 = "20200804126739"; //年月日时分秒
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat formatter2 = new SimpleDateFormat("yyyyMMddHHmmss");
SimpleDateFormat formatter3 = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat formatter4 = new SimpleDateFormat("yyyyMMdd");
time2 = formatter1.format(formatter2.parse(time2)) ;
time1 = formatter3.format(formatter4.parse(time1)) ;
System.out.println(time2);
System.out.println(time1);
}
2.效果图
3.说明
- 细心的同学可以发现,我的 time2 = “20200804126739” 明显写错了,12:64分,但是API依然为我们正确解析了。一个极小的细节
- formatter2.parse这个API会将String字符转为Date类型数据,然后就可以进行格式的转变了。其实用法就是书写两个SimpleDateFormat
对象,一个为 字符串过滤,一个为过滤后设置排版。 - 注意!!不可以用new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); 这种类型转 String time2 = "20200804126739"这个数据,会报错!
4.总结
String转Date并且设置排版,需要两个SimpleDateFormat,如果只是单纯的转为Date则不需要,
回顾:
String time2 = "20200804126739"; //年月日时分秒
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat formatter2 = new SimpleDateFormat("yyyyMMddHHmmss");
time2 = formatter1.format(formatter2.parse(time2)) ;