java校验日期格式
(这里提供两种校验日期格式的方法)
二、使用步骤
1.引入库
校验日期格式是否正确
代码如下(示例):
public static boolean checkDate(String val) {
try {
String rexp = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?" +
"((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|" +
"(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]" +
"?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|" +
"([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))";
if (!val.matches(rexp)) {
return true;
}
} catch (Exception e) {
return true;
}
return false;
}
2.校验日期格式(yyyy-MM)是否正确
代码如下(示例):
public static boolean checkDateMonth(String val) {
try {
if (val.length() > 7 && checkDate(val)) {
return true;
}
} catch (Exception e) {
return true;
}
if (!val.contains("-")) {
return true;
}
String[] vals = val.split("-");
if (vals.length < 2 || vals.length > 3) {
return true;
}
//校验年份和月份是否为正数
if (!checkNumIsPoNumOrPoDecimal(vals[0]) && !checkNumIsPoNumOrPoDecimal(vals[1])) {
return true;
}
//如果传入的是yyyy-MM格式的日期
if (vals.length == 2 && (vals[0].length() != 4 || vals[1].length() != 2)) {
return true;
}
int value = Integer.parseInt(vals[0]);
if (value < 1900) {
return true;
}
int month = Integer.parseInt(vals[1]);
if (month > 12) {
return true;
}
return vals.length == 3 && Integer.parseInt(vals[2]) > 31;
}
总结
提示:结合使用全是干货哟。