判斷日期字符串是否是對應格式的日期字符串


 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"));

    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM