0
会有什么样日期的日期格式:
2016年4月1日
2016年4月3日
2016年4月22日2016年4月22日的日期格式?
而且没有任何API来解析日期这样呢?
编辑:解决问题不包含任何解析日期的答案包含1(st),2(nd),3(rd)。我不知道如何解析st在1st中,nd在2nd和rd中3。
会有什么样日期的日期格式:
2016年4月1日
2016年4月3日
2016年4月22日2016年4月22日的日期格式?
而且没有任何API来解析日期这样呢?
编辑:解决问题不包含任何解析日期的答案包含1(st),2(nd),3(rd)。我不知道如何解析st在1st中,nd在2nd和rd中3。
问题是Java不理解ordinal indicator后缀,1st,2nd 3rd等。首先需要删除它,然后将它传递给DateFormat。
我还建议确保您的语言环境设置正确,因为“April”将是不同语言中的不同字符串,这将影响您软件的地理可移植性。
public static void main(String[] args) throws ParseException {
System.out.println(parseWithOrdinals("1st April,2016"));
System.out.println(parseWithOrdinals("3rd April,2016"));
System.out.println(parseWithOrdinals("22nd April,2016"));
}
private static Date parseWithOrdinals(String date) throws ParseException {
DateFormat format = new SimpleDateFormat("dd MMM,yyyy", Locale.UK);
String corrected = date.replaceFirst("(\\d+)+.*\\s(.*)", "$1 $2");
return format.parse(corrected);
}
谢谢,这些问题也帮了很大忙。 – andy
另请参阅[本示例](https://gist.github.com/MenoData/a133c20f54e2ee5eaa60656caccfdd11)使用我的API(Time4J)。 –