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

前端之家收集整理的这篇文章主要介绍了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}+",""));

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

原文链接:https://www.f2er.com/java/125023.html

猜你在找的Java相关文章