Java日期格式化与国际化支持全解析
1. 日期格式化异常处理
DateTimeFormatter
在遇到不兼容类型时会抛出异常。例如,以下代码会在运行时产生异常,因为它们尝试用时间格式来格式化日期,反之亦然:
date.format(DateTimeFormatter.ISO_LOCAL_TIME); // RuntimeException
time.format(DateTimeFormatter.ISO_LOCAL_DATE); // RuntimeException
2. 自定义日期/时间格式
若不想使用预定义格式, DateTimeFormatter
支持使用日期格式字符串进行自定义。示例如下:
var f = DateTimeFormatter.ofPattern("MMMM dd, yyyy 'at' hh:mm");
var dt = LocalDateTime.of(2022, Month.OCTOBER, 20, 6, 15, 30);
System.out.println(dt.format(f)); // October 20, 2022 at 06:15
Java 为每个字母或符号分配了特定的日期/时间部分,例如 M
用于表示月份, y
用于表示年份,且大小写敏感,使用 m
表示分钟而非月