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

如何将存储日期的CharSequence变量转换为DD/MM/YYYY格式的Date类型

实现方案

方案1:Java 8及以上版本(推荐,线程安全)

Java 8引入的java.time包提供的时间API是线程安全的,且原生支持接收CharSequence类型参数做解析,不需要额外转成String类型,实现代码如下:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

// 分别定义输入格式、输出格式的格式化器
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd", Locale.ENGLISH);
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy", Locale.ENGLISH);

// 直接解析CharSequence类型的输入日期
CharSequence startDate = "1998/10/05";
LocalDate date = LocalDate.parse(startDate, inputFormatter);

// 输出目标格式的日期字符串
String targetDate = outputFormatter.format(date);
// 执行后targetDate的值为 05/10/1998

方案2:Java 8以下版本兼容方案

如果运行环境不支持Java 8的新时间API,可以用SimpleDateFormat实现,注意该类非线程安全,多线程环境下不要设为全局静态变量:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

CharSequence startDate = "1998/10/05";
SimpleDateFormat inputSdf = new SimpleDateFormat("yyyy/MM/dd", Locale.ENGLISH);
SimpleDateFormat outputSdf = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);

// CharSequence需要先转成String再解析
Date date = inputSdf.parse(startDate.toString());
String targetDate = outputSdf.format(date);

注意事项

  • 格式符大小写敏感:yyyy代表4位年份,MM代表2位月份,dd代表2位日期,大小写错误会导致解析失败
  • 实际使用时建议添加异常捕获逻辑,处理输入为空、格式不匹配等异常场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:15:01