String regex = "((\\d{4})-(0[13578]|1[02])-(0[1-9]|[12]\\d|3[01]))|((\\d{4})-(0[469]|11)-(0[1-9]|[12]\\d|30))|((\\d{4})-(02)-(0[1-9]|1\\d|2[0-8]))|((\\d{2}(0[48]|[2468][048]|[13579][26]))-(02)-(29))|(((0[48]|[2468][048]|[13579][26])00)-(02)-(29))";
//创建Pattern对象
Pattern sp = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
if(sm.find()) {
String time = sm.group(0); //time为匹配到的值 2019-10-14
String[] split = time.split("-");
String year = split[0]; //对应年份
String month = split[1]; //对应月份
String day = split[2]; //对应日
}