提问人:user3608694 提问时间:7/26/2023 更新时间:8/5/2023 访问量:186
如何将日期从这种格式“dd/MMM/yyyy”转换为具有 Java 17 版本的任何其他格式?
How to convert date from this format "dd/MMM/yyyy" to any other format with Java 17 version?
问:
我正在尝试将日期从这种格式“dd/MMM/yyyy”转换为“yyyyMMdd”, 对于Java 1.8版本,代码工作正常,我的代码是
SimpleDateFormat inputFormat = new SimpleDateFormat(currentFormat);
SimpleDateFormat outputFormat = new SimpleDateFormat(newFormat);
Date date = inputFormat.parse(dateStr);
return outputFormat.format(date);
当我从 Java 8 更改为 java 17 时,我收到解析异常。请帮忙,谢谢
答:
2赞
Oleg Cherednik
7/26/2023
#1
对于 jvm17,请改用。java.time.*
public static String convert(String dateStr) {
LocalDate date = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("dd/MMM/yyyy", Locale.ENGLISH));
return date.format(DateTimeFormatter.BASIC_ISO_DATE, Locale.ENGLISH);
}
客户端的代码将如下所示:
String dateStr = "22/Jul/2023";
System.out.println(convert(dateStr)); // 20230722
评论
3赞
Joop Eggen
7/26/2023
我认为未指定的区域设置无法处理MMM。
2赞
WJS
7/26/2023
#2
除非是向后兼容的要求,否则应避免使用旧的 Date 类及其支持类。它们是越野车和过时的。
从包装中。java.time
您想要的是预定义的BASIC_ISO_DATE。因此,所需要的只是格式。根据您的要求添加区域设置。from
String dateString = "10/Jan/2023";
DateTimeFormatter from = DateTimeFormatter.ofPattern("dd/MMM/yyyy", Locale.ENGLISH);
LocalDate ldt = LocalDate.parse(dateString, from);
String result = ldt.format(DateTimeFormatter.BASIC_ISO_DATE);
System.out.println(result);
指纹
20230110
查看 java.time 包,了解一组丰富的类来操作各种日期和时间。
评论
java.time