java根据类型不确定的字符串获取时间
输入一串字符串日期,掺杂其他字符并且格式不确定,可能是XX年XX月XX日格式,也可能是XX.XX.XX,也可能是XX-XX-XX,均可获取出对应格式日期
public static String testDate(String input){
input=StringUtils.deleteWhitespace(input);
String regex = "\\d{4}年\\d{1,2}月\\d{1,2}日";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
String date=null;
if (matcher.find()) {
date = matcher.group();
}
if (StringUtil.isNullOrBlank(date)){
regex = "\\d{4}.\\d{1,2}.\\d{1,2}";
pattern = Pattern.compile(regex);
matcher = pattern.matcher(input);
if (matcher.find()) {
date = matcher.group();
}
}
if (StringUtil.isNullOrBlank(date)){
regex = "\\d{4}-\\d{1,2}-\\d{1,2}";
pattern = Pattern.compile(regex);
matcher = pattern.matcher(input);
if (matcher.find()) {
date = matcher.group();
}
}
return date;
}
public static void main(String[] args) {
System.out.println(testDate("49年(至2023年10月1日止)"));//输出2023年10月1日
System.out.println(testDate("今日2023.11.12"));//输出2023.11.12
System.out.println(testDate("测试2023 -0 1-12"));//输出2023-01-12
}