格式化或解析日期、时间的类,类似于SimpleDateFormat
该类提供了三种格式化方法:
- 方式一:预定义的标准格式。如ISO_LOCAL_DATE_TIME;ISO_LOCAL_DATE;ISO_LOCAL_TIME
DateTimeFormatter dtf = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
①格式化:日期—>String
LocalDateTime ldt = LocalDateTime.now();String s1 = dtf.format(ldt);
②解析:String—>日期
TemporalAccessor p1 = dtf.parse("2022-08-23T11:32:22.6186321");//标准格式实例化的解析只能是这种格式,否则会抛异常
- 方式二:本地化相关的格式。如:ofLocalizedDateTime(参数),参数可选择:FormatStyle.LONG / FormatStyle.MEDIUM / FormatStyle.SHORT。(类似可知ofLocalizedDate和ofLocalizedTime)
DateTimeFormatter dtf2 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT);//格式化之后输出2022/8/23 上午11:41
DateTimeFormatter dtf2 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM);//2022年8月23日 上午11:41:14
DateTimeFormatter dtf2 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG);//2022年8月23日 上午11时41分14秒
格式化和解析的操作:
String s2 = dtf2.format(ldt);
TemporalAccessor p2 = dtf2.parse("2022/8/23 上午11:45");//实例化时参数是SHORT时的格式
- 方式三:自定义的格式。如:ofPattern(“yyyy-MM-dd hh:mm:ss”) (重点)
DateTimeFormatter dtf3 = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
①格式化
String s3 = dtf3.format(LocalDateTime.now());//输出2022-08-23 11:50:21
②解析
TemporalAccessor p3 = dtf3.parse("2022-08-23 11:50:21");