JDK8以前
Date date = new Date();
System.out.println("时间格式化前:" + date);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String format = sdf.format(date);
System.out.println("时间格式化后:" + format);

JDK8以前的时间有以下四个缺点,故Java在JDK8对时间对象做了改动
- 设计不合理,获取当前的年份需要加1900
Date date = new Date();
System.out.println(date.getYear() + 1900);

- new的时间对象都是可变对象,修改后会丢失最开始的时间信息
Date data = new Date();
System.out.println(data);
data.setTime(123);
System.out.println(data);

- 不能精确到纳秒,只能精确到毫秒
- 线程是不安全的
JDK8以后
LocalDateTime ldt1 = LocalDateTime.now();
System.out.println("格式化前的时间" + ldt1);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
String format = dtf.format(ldt1);
System.out.println("格式化后的时间" + format);
String dateStr = "1999年01月10日 12:10:59";
LocalDateTime ldt2 = LocalDateTime.parse(dateStr, dtf);
System.out.println("将字符串时间转为时间对象:" + ldt2);

首次发布
hezhongying.blog.csdn.net/article/det…