日期模式识别算法不仅可以识别日期模式,还可以获取Java日期格式的可能日期。这个算法非常快速和轻量级。处理时间是线性的,并且所有日期都在一次通过中确定。 算法使用树遍历机制解决日期。自定义树数据结构以创建支持的日期,时间和月份模式。
该算法还确认日期文字之间的多个空格字符。例如。 DD DD DD和DD DD DD被视为有效日期。
以下日期模式被认为是有效的并且可以使用该算法进行识别。
DD MM(MM)YY(YY) YY(YY)MM(MM)DD MM(MM)DD YY(YY)
其中M是一个月的文字就像是月或明年1月字母格式日期之间
允许定界符是 '/', '\', '', ' ' '|', ' - ',''
它还确认在以下格式 HH拖尾时间图案(24 ):mm:ss.SSS am/pm hh(24):mm:ss am/pm hh(24):mm:ss am/pm
解析时间是线性的,没有使用模式匹配或蛮力。该算法是基于树的遍历和返回日期列表具有以下三个组件 - 文本 确定日期字符串 - 转换&格式的日期字符串 - SimpleDateFormat的
使用日期字符串和格式字符串,用户可以根据自己的要求自由地将字符串转换为对象。
算法库可在maven central上找到。
net.rationalminds
DateParser
0.3.0
下面是使用它的示例代码。
import java.util.List;
import net.rationalminds.LocalDateModel;
import net.rationalminds.Parser;
public class Test {
public static void main(String[] args) throws Exception {
Parser parser=new Parser();
List dates=parser.parse("Identified date :'2015-January-10 18:00:01.704', converted");
System.out.println(dates);
}
}
输出: [LocalDateModel {originalText = 2015-一月10 18:00:01.704,dateTimeString = 2015年1月10日18:00:01.704,conDateFormat = YYYY-MM-DD HH:MM: SS.SSS,开始= 18,结束= 46}]