JDK8之前,多使用java.text.SimpleDateFormat实现字符串之间的相互转化
时间转字符串
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(format.format(new Date()));
2020-03-16 23:57:36
字符串转时间
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
System.out.println(format.parse("2010年4月23日 9时34分12秒"));
Fri Apr 23 09:34:12 CST 2010
JDK8之后,多使用java.time.format.DateTimeFormatter(要求高格式完全匹配)
时间转字符串
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(LocalDateTime.now().format(pattern));
2020-03-17 00:10:00
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
System.out.println(LocalDate.now().format(pattern));
2020-03-17
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("HH:mm:ss");
System.out.println(LocalTime.now().format(pattern));
00:12:04
注意:时间与格式一定要互相对应,要不然会有报错
LocalDateTime.now()–> 年月日,时分秒
LocalDate.now()–> 年月日
LocalTime.now()–> 时分秒
字符串转时间
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒");
System.out.println(LocalDateTime.parse("2010年04月23日 09时34分12秒", pattern));
2010-04-23T09:34:12
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
System.out.println(LocalDate.parse("2010年04月23日", pattern));
2010-04-23
ateTimeFormatter pattern = DateTimeFormatter.ofPattern("HH时mm分ss秒");
System.out.println(LocalTime.parse("09时34分12秒", pattern));
09:34:12