通过匹配字符串中的日期格式使用Java提取日期

Posted

技术标签:

【中文标题】通过匹配字符串中的日期格式使用Java提取日期【英文标题】:Extracting dates using Java by matching date format from string 【发布时间】:2015-01-23 17:18:43 【问题描述】:

是否有人知道第三方包可以直接查找与 Java DateFormat 匹配的输入字符串部分?换句话说,将 DateFormat 转换为正则表达式?

例如,它可能会转换;

DateFromat df = new SimpleDateFormat("MM/dd/yyyy")

"(0[1-9]|1[0-2])\\/(0[1-9]|1[0-9]|2[0-9]|3[01])\\/([0-9]4)" 之类的东西,这样您就可以使用无缝方法,例如(幻想代码):

DateFormat df = new SimpleDateFormat("MM/dd/yyyy");

DateMatcher dm = df.dateMatcher(inputString);

while (dfm.findDate()) 
#dostuff
; // or 

if (dfm.matchesDate()) #dosomething

【问题讨论】:

***.com/questions/3850784/… 【参考方案1】:

SimpleDateFormat#toPattern 获取您的SimpleDateFormat 实例的String 模式!因此,使用您选择的构造函数实例化 SimpleDateFormat 并使用 toPattern 提取模式 String

【讨论】:

【参考方案2】:

是的,这个神奇的解析器代码在 joda-time 包中可用。检查那里的 DateTimeParser 的实现。

检查类 InternalParserDateTimeParser、DateTimeParserBucket 以了解 jodatime 如何从输入行中提取日期作为给定模式。

【讨论】:

以上是关于通过匹配字符串中的日期格式使用Java提取日期的主要内容,如果未能解决你的问题,请参考以下文章

有关正则表达式的问题:将中文字符串中的日期提取出来

我如何使用java UUID提取日期吗

如何检查字符串是不是匹配某种日期格式?? JAVA [重复]

RegEx 匹配有效日期 Presto

使用正则表达式匹配 yyyymmdd 中的日期格式

SQL里怎么把日期截取为月份