Java新手求助:如何将日期字符串"2023-02-01"转为"02012023"
把"2023-02-01"转换为"02012023"的Java实现方法
如果你用的是Java 8之前的版本,可以用SimpleDateFormat完成这个转换,核心分两步:解析原日期字符串为Date对象,再将Date对象格式化为目标格式的字符串。
直接看代码示例:
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateConverter { public static void main(String[] args) { String originalDate = "2023-02-01"; // 定义原格式与目标格式的SimpleDateFormat实例 SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat outputFormat = new SimpleDateFormat("MMddyyyy"); try { // 解析原字符串为Date对象 Date date = inputFormat.parse(originalDate); // 格式化为目标字符串 String convertedDate = outputFormat.format(date); System.out.println(convertedDate); // 输出:02012023 } catch (ParseException e) { // 处理解析失败场景,比如原字符串格式不符合要求 e.printStackTrace(); } } }
这里要明确SimpleDateFormat的格式符规则:
yyyy:4位完整年份MM:带前导零的2位月份dd:带前导零的2位日期
原格式yyyy-MM-dd完全匹配输入的"2023-02-01",目标格式MMddyyyy则按「月份-日期-年份」的顺序拼接,正好得到你要的"02012023"。
注意:SimpleDateFormat是线程不安全的,多线程环境下使用可能出现异常。如果你的项目基于Java 8及以上版本,更推荐使用java.time包的新日期API,代码更简洁且线程安全:
import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class DateConverter { public static void main(String[] args) { String originalDate = "2023-02-01"; // 定义原格式与目标格式的DateTimeFormatter DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("MMddyyyy"); // 一步完成解析与格式化 LocalDate date = LocalDate.parse(originalDate, inputFormatter); String convertedDate = date.format(outputFormatter); System.out.println(convertedDate); // 输出:02012023 } }
这个版本若原字符串格式错误会抛出DateTimeParseException,你可以根据需求选择捕获处理。
内容的提问来源于stack exchange,提问作者Markus
相关产品推荐
相关产品推荐

