JAVA ⽇期格式校验正则表达式⽅法,yyyy 年MM ⽉,yyyy-MM-dd 格式等今天校验了⽇期格式,故记录下;
⼀、校验yyyy年MM⽉;⼆、校验yyyy-MM-dd;  /**yyyy
年MM ⽉ 或者 yyyy 年M ⽉**/
private static final String MONTH_REGEX = "^([1-9]\\d{3}年)(([0]{0,1}[1-9]⽉)|([1][0-2]⽉))$";
/***
* @desc 校验⽉份的格式,格式如下,yyyy 年MM ⽉或者yyyy 年M ⽉
* 如:2020年10⽉  或者  2020年09⽉  或者  2020年9⽉
* @author fzdepqq
* @date 2020-05-28 18:51
* @param
* @param month :校验的⽉份
* @return boolean
*/
public static boolean validMonthEffecitive(String month) throws Exception{
boolean matches =  Pattern.matches(MONTH_REGEX, month);
return matches;
}
/**yyyy-MM-dd 或者 yyyy-M-dd**/
private static String DATE_REGEX = "^([1-9]\\d{3}-)(([0]{0,1}[1-9]-)|([1][0-2]-))(([0-3]{0,1}[0-9]))$";
/***
* @desc 校验⽇期的格式,yyyy-MM-dd ,⽆法校验dd 的完整性,
* 就是可能出现 2020-2-32,2020-1-33这样的天数,可以通过设置⽇期的严禁性来转成⽇期,若报错则⽇期不正确
* @author fanzhen
* @date 2020-05-28 18:50
* @param
* @param datestr :⽇期,格式:yyyy-MM-dd
* @return boolean
时间正则表达式java*/
public static boolean validDateEffecitive(String datestr) throws Exception{
boolean matches =  Pattern.matches(DATE_REGEX, datestr);
if(!matches){
return matches;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//设置⽇期格式转的严谨性
sdf.setLenient(false);
try {
sdf.parse(datestr);
} catch (ParseException e) {
e.printStackTrace();
return false;
}
return matches;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。