java – 在日期 – 时间字符串中解析日期的顺序指示符(st,nd,rd,th)

我检查了 SimpleDateFormat javadoc,但是我无法找到一种以这样的日期格式解析 ordinal indicator方法
Feb 13th 2015 9:00AM

我试过“MMM dd yyyy hh:mma”,但是这些日子必须在数量上是正确的吗?

可以使用SimpleDateFormat解析“第13”日期,而不必截断字符串

解决方法

Java的SimpleDateFormat不支持序数后缀,但序号后缀只是眼睛糖果 – 它是多余的,可以很容易的删除,以便直接解析:
Date date = new SimpleDateFormat("MMM dd yyyy hh:mma")
    .parse(str.replaceAll("(?<=\\d)(st|nd|rd|th)",""));

替换正则表达式非常简单,因为这些序列将不会出现在有效日期的其他位置.

处理任何以任何语言附加任意长度的序号指示符作为后缀的语言:

Date date = new SimpleDateFormat("MMM dd yyyy hh:mma")
    .parse(str.replaceAll("(?<=\\d)(?=\\D* \\d+ )\\p{L}+",""));

一些语言,例如普通话,预先填写他们的顺序指标,但也可以使用交替方式处理 – 作为读者的练习留下来:)

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...