如何将以下日期格式"1st-May-2013"转换为"2013-05-01"



如何将日期格式1st-May-2013转换为2013-05-0110th-Jun-20022002-06-102nd-Apr-19961996-04-02

请注意,输入日期包含序号部分(例如1st等(。

序数部分不被LocalDateDateTimeFormatter的现有格式化程序考虑,所以你需要删除序数部分,然后用好的模式解析

public static void main(String[] args){
String[]strs = {"1st-May-2013", "10th-Jun-2002", "2nd-Apr-1996"};       
for(String str : strs){
LocalDate d = ordinalStringToDate(str);
System.out.println(d);
}
}
private static LocalDate ordinalStringToDate(String str){
return LocalDate.parse(str.replaceAll("(st|nd|rd|th)", ""), 
DateTimeFormatter.ofPattern("d-MMM-yyyy"));
}

图案

  • d是针对日期数字的
  • MMM是月份短 (MMMM如果是完整的月份名称(
  • yyyy年数

Workable Demo

最新更新