zl程序教程

您现在的位置是:首页 >  其他

当前栏目

判断日期字符串是否是对应格式的日期字符串详解编程语言

日期编程语言 详解 字符串 判断 格式 对应 是否是
2023-06-13 09:11:43 时间

 1:工具类——本例的核心,其中有两点注意的地方,一是使用了严格转换方式,二是将转换成的日期又转换成字符串和原字符串进行了二次比较

import org.slf4j.Logger; 

import org.slf4j.LoggerFactory; 

import java.text.DateFormat; 

import java.text.ParseException; 

import java.text.SimpleDateFormat; 

import java.util.Date; 

 * @date 2017-05-10 上午 09:08:00 

 * @since: JDK 1.7 

 * @Version: V1.0 

public class DateUtil { 

 /** 

 * 声明一个日志记录器 

 private static final Logger LOGGER = LoggerFactory.getLogger(DateUtil.class); 

 /** 

 * 判断是否是对应的格式的日期字符串 

 * @param dateStr 

 * @param datePattern 

 * @return 

 public static boolean isRightDateStr(String dateStr,String datePattern){ 

 DateFormat dateFormat = new SimpleDateFormat(datePattern); 

 try { 

 //采用严格的解析方式,防止类似 “2017-05-35” 类型的字符串通过 

 dateFormat.setLenient(false); 

 dateFormat.parse(dateStr); 

 Date date = (Date)dateFormat.parse(dateStr); 

 //重复比对一下,防止类似 “2017-5-15” 类型的字符串通过 

 String newDateStr = dateFormat.format(date); 

 if(dateStr.equals(newDateStr)){ 

 return true; 

 }else { 

 LOGGER.error("字符串dateStr:{}, 不是严格的 datePattern:{} 格式的字符串",dateStr,datePattern); 

 return false; 

 } catch (ParseException e) { 

 LOGGER.error("字符串dateStr:{},不能按照 datePattern:{} 样式转换",dateStr,datePattern); 

 return false; 

}

 2:简单的测试类

public class TestMain { 

 public static void main(String[]args){ 

 System.out.println(DateUtil.isRightDateStr("2017-05-15","yyyy-MM-dd")); 

 System.out.println(DateUtil.isRightDateStr("2017-5-15","yyyy-MM-dd")); 

 System.out.println(DateUtil.isRightDateStr("2017-01-88","yyyy-MM-dd")); 

 System.out.println(DateUtil.isRightDateStr("2017-21-88","yyyy-MM-dd")); 

 System.out.println(DateUtil.isRightDateStr("21:88","HH:mm")); 

 System.out.println(DateUtil.isRightDateStr("01:10","HH:mm")); 

 System.out.println(DateUtil.isRightDateStr("25:00","HH:mm")); 

}

 

16615.html

cjava