我想把一个日期格式转换成另一个日期格式。例如,我有这个字符串“05-Apr-23”,我想把它转换成这个字符串“05/04/23”。我做了这个实现,但它不工作。
String oldDate = "05-Apr-23";
SimpleDateFormat sdf = new SimpleDateFormat("dd-mmm-yy");
Date dt = null;
try {
dt = sdf.parse(oldDate);
} catch (ParseException e) {
throw new CustomInternalServerException(oldDate + "is not a valid date");
}
SimpleDateFormat sdf1 = new SimpleDateFormat("dd/mm/yy");
return sdf1.format(dt);
我得到异常ParseException:无法解析日期:“05-Apr-23”.任何反馈将不胜感激!谢谢!
2条答案
按热度按时间mwkjh3gx1#
你只犯了一个小错误,你必须使用MMM而不是mmm,m是分钟,M是月。
变更如下
最后还有一个错误,你必须返回sdf1而不是sdf。
vom3gejh2#
java.time
不要使用被取代的日期类。
Date
,SimpleDateFormat
-不!LocalDate
,DateTimeFormatter
-是!格式模式区分大小写。对于月份的缩写名称,请使用大写的'MMM'。
指定一个
Locale
,用于确定本地化月份名称的人类语言和文化规范。