Java Patternmatches判断字符串日期20-一月-23格式其他全部也通用
首先,需要将"20-一月-23"格式的日期字符串转换为标准的日期格式,例如"2023-01-20"。然后,使用Java的Pattern.matches方法来判断字符串是否符合日期格式。
以下是实现此功能的Java代码示例:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
String input = "20-一月-23";
String pattern = "\\d{2}-[一二三四五六七八九十]{1,3}-\\d{2}";
// 将日期字符串转换为标准格式
String standardDate = convertToStandardDate(input);
// 使用Pattern.matches判断字符串是否符合日期格式
boolean isMatch = Pattern.matches(pattern, standardDate);
System.out.println(isMatch);
}
public static String convertToStandardDate(String input) {
String[] chineseMonths = {"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"};
String[] englishMonths = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
String[] parts = input.split("-");
String day = parts[0];
String month = parts[1];
String year = parts[2];
// 获取对应的英文月份
String englishMonth = "";
for (int i = 0; i < chineseMonths.length; i++) {
if (chineseMonths[i].equals(month)) {
englishMonth = englishMonths[i];
break;
}
}
// 拼接成标准日期格式
String standardDate = year + "-" + englishMonth + "-" + day;
return standardDate;
}
}
上述代码中,我们使用了正则表达式模式\\d{2}-[一二三四五六七八九十]{1,3}-\\d{2}来匹配日期字符串。其中,\\d{2}表示两位数字,[一二三四五六七八九十]{1,3}表示一到三个汉字的月份,\\d{2}表示两位数字的年份。
然后,我们定义了一个convertToStandardDate方法,用于将"20-一月-23"格式的日期字符串转换为"2023-01-20"格式。在此方法中,我们使用了两个数组chineseMonths和englishMonths,分别存储中文月份和对应的英文月份。通过比较月份字符串,我们可以找到对应的英文月份。
最后,我们在main方法中调用convertToStandardDate方法将日期字符串转换为标准格式,并使用Pattern.matches方法判断字符串是否符合日期格式
原文地址: https://www.cveoy.top/t/topic/iT11 著作权归作者所有。请勿转载和采集!