Java 日期格式正则表达式
在Java中,可以使用正则表达式来验证或匹配日期格式,以下是一些常见的日期格式及其对应的正则表达式:

常见日期格式正则表达式
YYYY-MM-DD (ISO 8601)
String regex = "^\\d{4}-\\d{2}-\\d{2}$";
DD/MM/YYYY
String regex = "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/\\d{4}$";
MM/DD/YYYY
String regex = "^(0?[1-9]|1[012])/(0?[1-9]|[12][0-9]|3[01])/\\d{4}$";
YYYYMMDD
String regex = "^\\d{4}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])$";
带时间的日期 (YYYY-MM-DD HH:MM:SS)
String regex = "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$";
更严格的日期验证
上面的正则表达式只验证格式,不验证日期的有效性(如2月30日),如果要验证有效的日期,建议使用Java的DateTimeFormatter或SimpleDateFormat:
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class DateValidator {
private DateTimeFormatter dateFormatter;
public DateValidator(String pattern) {
this.dateFormatter = DateTimeFormatter.ofPattern(pattern);
}
public boolean isValidDate(String dateStr) {
try {
LocalDate.parse(dateStr, dateFormatter);
return true;
} catch (DateTimeParseException e) {
return false;
}
}
}
使用示例
import java.util.regex.Pattern;
public class DateRegexExample {
public static void main(String[] args) {
// 简单格式验证
String isoDateRegex = "^\\d{4}-\\d{2}-\\d{2}$";
Pattern pattern = Pattern.compile(isoDateRegex);
String testDate = "2025-05-15";
System.out.println("Is " + testDate + " valid? " +
pattern.matcher(testDate).matches());
// 使用DateTimeFormatter进行严格验证
DateValidator validator = new DateValidator("yyyy-MM-dd");
System.out.println("Is " + testDate + " valid? " +
validator.isValidDate(testDate));
}
}
注意事项
- 正则表达式只能验证格式,不能验证日期的有效性
- 对于严格的日期验证,建议使用Java内置的日期时间API
- 考虑时区问题,特别是当处理带时间的日期时
- 不同地区的日期格式可能不同,需要根据实际情况调整正则表达式
希望这些信息对你有帮助!

