You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中String转LocalDate问题:避免重复使用DateTimeFormatter

复用DateTimeFormatter解决日期字符串与LocalDate互转问题

直接把DateTimeFormatter定义为静态常量就能解决重复创建的问题——它是线程安全的不可变类,全局复用完全没问题:

1. 定义全局复用的Formatter

// 建议用yyyy(公历年份)而非YYYY(ISO周年),避免跨年周解析异常
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("dd/MM/yyyy");

2. 字符串转LocalDate

String inputDate = "12/11/2022";
LocalDate localDate = LocalDate.parse(inputDate, DATE_FORMATTER);

3. 在if-else逻辑中使用LocalDate

示例逻辑:

if (localDate.isBefore(LocalDate.of(2023, 1, 1))) {
    // 处理2023年之前的日期
} else {
    // 处理2023年及之后的日期
}

4. LocalDate转回字符串

String outputDate = localDate.format(DATE_FORMATTER);

关键提醒

别用YYYY代替yyyy!YYYY代表的是ISO周年(基于周的年份),在跨年周的情况下,解析出的年份可能和实际公历年份不一致,绝大多数业务场景都应该用yyyy。

内容的提问来源于stack exchange,提问作者stan92

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 00:25:33