欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java 中校驗(yàn)時(shí)間格式的常見方法

 更新時(shí)間:2024年08月22日 14:54:44   作者:碼農(nóng)愛java  
在實(shí)際項(xiàng)目開發(fā)中,跟時(shí)間參數(shù)打交道是必不可少的,為了保證程序的安全性、健壯性,一般都會(huì)對(duì)參數(shù)進(jìn)行校驗(yàn),其他類型的參數(shù)校驗(yàn)很好實(shí)現(xiàn),那你知道時(shí)間參數(shù)的是怎么校驗(yàn)的嗎,下面給大家分享Java 中校驗(yàn)時(shí)間格式的方法,感興趣的朋友跟隨小編一起看看吧

前言:

在實(shí)際項(xiàng)目開發(fā)中,跟時(shí)間參數(shù)打交道是必不可少的,為了保證程序的安全性、健壯性,一般都會(huì)對(duì)參數(shù)進(jìn)行校驗(yàn),其他類型的參數(shù)校驗(yàn)很好實(shí)現(xiàn),那你知道時(shí)間參數(shù)的是怎么校驗(yàn)的嗎?估計(jì)部分朋友在項(xiàng)目開發(fā)中,并沒有對(duì)時(shí)間參數(shù)進(jìn)行校驗(yàn),本篇分享時(shí)間參數(shù)的場常見校驗(yàn)方法。

時(shí)間參數(shù)的校驗(yàn)方向?

格式是否正確,比如業(yè)務(wù)設(shè)計(jì)需要的是 yyyy-MM-dd 格式,而傳參是 yyyy-MM-dd HH:mm:ss 格式等等。是否可以解析為正常時(shí)間,比如:2月30號(hào)這種時(shí)間。時(shí)間范圍是否在業(yè)務(wù)要求之內(nèi),比如要求最大時(shí)間范圍為一年。 校驗(yàn)方法

方法一:

使用 SimpleDateFormat 校驗(yàn),SimpleDateFormat(JDK8 之前常用的方法)。

public class DateValidUtil {
    public static void main(String[] args) {
        System.out.println("結(jié)果1" + isValid("2024-13-06 12:12", "yyyy-MM-dd"));
        System.out.println("結(jié)果2" + isValid("2024-06-06 12:12:12", "yyyy-MM-dd HH:mm:ss"));
        System.out.println("結(jié)果3" + isValid("2024-06-06 12:12", "yyyy-MM-dd"));
    }
    public static boolean isValid(String dateStr,String dateFormat) {
        final DateFormat sdf = new SimpleDateFormat(dateFormat);
        sdf.setLenient(false);
        try {
            Date parse = sdf.parse(dateStr);
        } catch (ParseException e) {
            return false;
        }
        return true;
    }
}

測試結(jié)果:

結(jié)果1false
結(jié)果2true
結(jié)果3true

結(jié)果分析:

  • 2024-13-06 12:12 中 13月是不存在的,因此校驗(yàn)出來是 false,沒有問題。
  • 2024-06-06 12:12:12 校驗(yàn)結(jié)果為 true 沒有問題。
  • 2024-06-06 12:12 校驗(yàn)結(jié)果也是 true,這個(gè)結(jié)果就有待商榷了,我們要的是 yyyy-MM-dd 格式的,而實(shí)際的時(shí)間是帶了時(shí)、分的,其校驗(yàn)結(jié)果也是 true,如果要強(qiáng)校驗(yàn)格式這里就有點(diǎn)問題了。

方法二:

public class DateValidUtil {
    public static void main(String[] args) {
        System.out.println("結(jié)果1"+isValidDate("2024-06-06 12:12","yyyy-MM-dd"));
        System.out.println("結(jié)果2"+isValidDate("2024-06-06 12:12:12","yyyy-MM-dd HH:mm:ss"));
    }
    public static boolean isValidDate(String dateStr, String pattern) {
        try {
            LocalDate parse = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern(pattern));
            System.out.println("轉(zhuǎn)換結(jié)果"+parse);
        } catch (Exception e) {
            return false;
        }
        return true;
    }
}

測試結(jié)果:

結(jié)果1false
結(jié)果2true
結(jié)果3false

結(jié)果分析:

  • 2024-13-06 12:12 中 13月是不存在的,因此校驗(yàn)出來是 false,沒有問題。
  • 2024-06-06 12:12:12 校驗(yàn)結(jié)果為 true 沒有問題。
  • 2024-06-06 12:12 校驗(yàn)結(jié)果也是 false,沒有問題,因?yàn)槲覀円氖?yyyy-MM-dd 格式的,而實(shí)際的時(shí)間是帶了時(shí)、分的,其校驗(yàn)結(jié)果也是 false,沒有問題。

總結(jié):對(duì)比兩種校驗(yàn)方法,很明顯使用 LocalDate 來校驗(yàn)更為嚴(yán)謹(jǐn),如果你已經(jīng)使用了 JDK8 及以上的版本,建議使用 LocalDate 來對(duì)日期格式進(jìn)行校驗(yàn)。

到此這篇關(guān)于Java 中常校驗(yàn)時(shí)間格式的方法的文章就介紹到這了,更多相關(guān)Java 校驗(yàn)時(shí)間格式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java中生產(chǎn)者消費(fèi)者問題和代碼案例

    java中生產(chǎn)者消費(fèi)者問題和代碼案例

    大家好,本篇文章主要講的是java中生產(chǎn)者消費(fèi)者問題和代碼案例,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • 總結(jié)Bean的三種自定義初始化和銷毀方法

    總結(jié)Bean的三種自定義初始化和銷毀方法

    這篇文章主要介紹了Bean的三種自定義初始化和銷毀方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java中將UUID存儲(chǔ)為Base64字符串的方法實(shí)現(xiàn)

    Java中將UUID存儲(chǔ)為Base64字符串的方法實(shí)現(xiàn)

    使用Base64編碼來對(duì)UUID存儲(chǔ)在一些特定的場合被廣泛的使用,本文主要介紹了Java中將UUID存儲(chǔ)為Base64字符串的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • Java全面解析IO流相關(guān)知識(shí)

    Java全面解析IO流相關(guān)知識(shí)

    這篇文章主要介紹了IO流相關(guān)知識(shí),包括File,字節(jié)流,字符流,特殊操作流(標(biāo)準(zhǔn)輸入流,標(biāo)準(zhǔn)輸出流,對(duì)象序列化與反序列化,properties與IO流結(jié)合)相關(guān)知識(shí)的總結(jié)
    2021-08-08
  • 一不小心就讓Java開發(fā)踩坑的fail-fast是個(gè)什么鬼?(推薦)

    一不小心就讓Java開發(fā)踩坑的fail-fast是個(gè)什么鬼?(推薦)

    這篇文章主要介紹了Java fail-fast,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • SpringBoot+Spring Security無法實(shí)現(xiàn)跨域的解決方案

    SpringBoot+Spring Security無法實(shí)現(xiàn)跨域的解決方案

    這篇文章主要介紹了SpringBoot+Spring Security無法實(shí)現(xiàn)跨域的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Apache?Commons?Config管理配置文件核心功能使用

    Apache?Commons?Config管理配置文件核心功能使用

    這篇文章主要為大家介紹了Apache?Commons?Config管理和使用配置文件核心深入探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 詳解mybatis流式查詢與分頁插件

    詳解mybatis流式查詢與分頁插件

    這篇文章主要介紹了mybatis流式查詢與分頁插件,本文通過實(shí)例代碼給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-11-11
  • SpringBoot實(shí)現(xiàn)Word轉(zhuǎn)PDF和TXT的實(shí)踐分享

    SpringBoot實(shí)現(xiàn)Word轉(zhuǎn)PDF和TXT的實(shí)踐分享

    研發(fā)工作中難免會(huì)遇到一些奇奇怪怪的需求,就比如最近,客戶提了個(gè)新需求:上傳一個(gè)WORD文檔,要求通過系統(tǒng)把該文檔轉(zhuǎn)換成PDF和TXT,所以本文給大家分享了SpringBoot實(shí)現(xiàn)Word轉(zhuǎn)PDF和TXT的實(shí)踐,感興趣的朋友可以參考下
    2024-08-08
  • Java實(shí)現(xiàn)萬年歷效果

    Java實(shí)現(xiàn)萬年歷效果

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)萬年歷效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06

最新評(píng)論