时间过得真快,转眼就2022年了,作为开发,时间处理非常繁琐。从Java8开始,有了新的时间API,时间处理更加优雅,无需依赖第三方库,线程安全。今天,我们来梳理一下新API的格式,也来玩点没玩过的,点赞,转发,看。新API的时间格式新时间API的时间格式由java.time.format.DateTimeFormatter处理。将本地化时间与枚举FormatStyle定义的样式相结合,DateTimeFormatter预定义了基于地区(Locale)样式的时间格式。让我们看一下这段代码:Stringformat=DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).format(ZonedDateTime.now());如果你在中国,格式化结果:January6,20224:22:01PM如果你在美国:Jan6,2022,4:21:10PM,有三种静态方法及其重载来格式化本地化时间,已编译成思维导图:本地化日期和时间处理ISO/RFC规范格式DateTimeFormatter也是内置的ISO和RFC时间格式,基于内置的DateTimeFormatter静态实例。例如://静态实例DateTimeFormatterisoWeekDateFormatter=DateTimeFormatter.ISO_WEEK_DATE;//执行格式化Stringformat=isoWeekDateFormatter.format(LocalDateTime.now());//format=2022-W01-4System.out.println("format="+format);其他如下表所示:内置ISO、RFC规范格式范式格式化这种方法应该是我们最常用的方法。通过字母和符号构造一个模式(Patterns),使用ofPattern(String)或ofPattern(String,Locale)方法将构造好的模式传递过去。例如,dMMMuuuu会将2011-12-03格式化为2011年12月3日。从模式创建的格式可以根据需要多次使用,它是不可变的,并且是线程安全的。信什么yyyy-MM-ddHH:mm:ss你玩腻了,胖哥给你看你没见过的东西://最后两个V不是W单V会报错Stringpattern="Guuuu'year'MMMd'day'ZZZZZVV";Stringformat=DateTimeFormatter.ofPattern(pattern).format(ZonedDateTime.now());//format=2022-W01-4System.out.println("format="+format);输出:format=January7,2022+08:00Asia/Shanghai表格给大家整理了一下,自己试试:格式符号对照表
