如何将日期格式1st-May-2013
转换为2013-05-01
,10th-Jun-2002
到2002-06-10
,2nd-Apr-1996
到1996-04-02
。
请注意,输入日期包含序号部分(例如1st
等(。
序数部分不被LocalDate
DateTimeFormatter
的现有格式化程序考虑,所以你需要删除序数部分,然后用好的模式解析
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
年数