【发布时间】:2017-10-21 05:12:55
【问题描述】:
如何检查字符串是否包含这种形式的日期:
美国东部标准时间 2012 年 1 月 15 日星期日晚上 7:36
我正在处理的数据包含大量字符串。但我要查找的字符串类型包含 2 或 3 个单词的名称和日期。我正在检查日期以识别这些类型的字符串。
我已经为这种类型的日期找到了 simpleDateFormat。
String string1 = "Rahul Chowdhury Sunday, January 15, 2012 at 7:37pm EST";
String string2 = "Aritra Sinha Nirmal Friday, April 1, 2016 at 10:16pm EDT";
SimpleDateFormat format = new SimpleDateFormat("EEEEE, MMM dd, yyyy 'at' hh:mmaa z");
但我不知道如何继续。
我猜正则表达式可能有效,但当月/日名称的长度不同时,我不知道如何实现它。即“May”比“December”短得多。
我想知道是否有使用正则表达式的解决方案或更简单的解决方案。
我知道还有其他线程问类似的问题,但他们没有回答我的问题。
【问题讨论】:
-
使用
format.parse(string)如果格式不匹配会抛出ParseException -
检查星期几和月份的正则表达式可能会很长。您能否更好地描述您认为需要检查字符串以查看它们是否为日期的实际问题?
-
为什么?只需尝试将其解析为日期并捕获异常。重复所有这些努力是没有意义的。
-
字符串不仅仅是日期。因此,符合我的条件但也包含其他单词的字符串会抛出异常,我会错过它们。
标签: java regex string date simpledateformat