日期時間字符串 正則表達式校驗(包含閏年校驗)

1.yyyy-MM-dd
//支持 2020-02-29 格式的時間格式字符串校驗

String regex ="^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$";

return Pattern.compile(regex).matcher(timeStr).matches();//滿足 返回true 不滿足返回false

//yyyy/MM/dd? 替換"-"為"/"

String regex ="^(?:(?!0000)[0-9]{4}/(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])/(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)/02/29)$";

//yyyyMMdd?替換"-"為""

String regex ="^(?:(?!0000)[0-9]{4}(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)0229)$";

2.yyyy-MM-dd HH:mm:SS

//支持 2020-02-29 23:59:59格式的時間格式字符串校驗

String regex ="^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)\\s+([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$";

return Pattern.compile(regex).matcher(timeStr).matches();

//其他格式進行相應(yīng)字符串替換

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • package com.fsti.icop.util.regexp; import java.util.regex...
    請叫我木頭哥閱讀 1,098評論 0 0
  • 1,正則表達式的作用:匹配一個字符串中的一些內(nèi)容 2,聲明和使用: 1)構(gòu)造函數(shù) var reg=new RegE...
    WDL_1a39閱讀 875評論 0 1
  • 什么事正則表達式 正則表達式:又稱正規(guī)表示式、正規(guī)表示法、正規(guī)表達式、規(guī)則表達式、常規(guī)表示法(英語:Regular...
    紅葉靈閱讀 425評論 0 0
  • 小橋流水近漁家,庭院陽臺種滿花。 喝酒聊天尋快活,下棋論道品春茶。
    蠻力閱讀 295評論 2 7
  • 西成高鐵開始在建時,就已經(jīng)期待了。今年5月份,關(guān)于西成高鐵開通,正式營運,眾說紛紜。已經(jīng)記不清關(guān)注了多少個關(guān)于它開...
    羅淌閱讀 478評論 2 1

友情鏈接更多精彩內(nèi)容