Java驗證日期時間字符串是否合法的三種方式
第一種,JDK8之前用SimpleDateFormat類
可以使用SimpleDateFormat類來驗證日期時間的格式和有效性。
首先,可以創(chuàng)建SimpleDateFormat對象,然后使用該對象的parse()方法來驗證日期時間字符串的格式和有效性。如果該方法拋出異常,則表示日期時間字符串不符合指定的格式,而如果該方法成功返回Date對象,則表示日期時間字符串符合指定的格式。
例如,以下代碼片段展示了如何使用SimpleDateFormat類來驗證日期時間字符串的格式和有效性:
// 創(chuàng)建SimpleDateFormat對象,指定日期時間格式 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 待驗證的日期時間字符串 String dateTimeString = "2021-06-30 12:34:56"; try { // 將日期時間字符串轉化為Date對象 Date dateTime = dateFormat.parse(dateTimeString); // 驗證日期時間字符串的格式和有效性成功 System.out.println("日期時間字符串格式和有效性驗證通過"); } catch (ParseException e) { // 驗證日期時間字符串的格式和有效性失敗 System.err.println("日期時間字符串格式和有效性驗證失?。? + e.getMessage()); }
在上述代碼中,首先創(chuàng)建了一個SimpleDateFormat對象,指定日期時間格式為"yyyy-MM-dd HH:mm:ss"。然后,使用該對象的parse()方法將待驗證的日期時間字符串轉化為Date對象,如果轉化成功,則表示該日期時間字符串符合指定的格式和有效性,否則將拋出ParseException異常。
第二種,JDK8之后用DateTimeFormatter類
在Java中,可以使用DateTimeFormatter類的ofPattern方法來創(chuàng)建一個日期時間格式化對象。然后,使用該對象的parse方法來驗證一個字符串是否符合指定的日期時間格式。
以下是一個示例代碼,演示如何使用DateTimeFormatter來驗證一個字符串是否符合指定的日期時間格式:
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; public class DateTimeFormatValidator { public static void main(String[] args) { String userInput = "2021-08-31 10:30:00"; String pattern = "yyyy-MM-dd HH:mm:ss"; try { // 創(chuàng)建日期時間格式化對象 DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); // 將用戶輸入的字符串解析為LocalDateTime對象 LocalDateTime dateTime = LocalDateTime.parse(userInput, formatter); // 打印解析后的日期時間 System.out.println(dateTime); } catch (DateTimeParseException e) { // 解析失敗,說明輸入的字符串不符合指定的日期時間格式 System.out.println("Invalid date/time format: " + userInput); } } }
該示例代碼中,先定義了一個用戶輸入的字符串和一個日期時間格式化模板,然后創(chuàng)建了一個DateTimeFormatter對象,使用ofPattern方法指定日期時間格式。
接著,使用DateTimeFormatter對象的parse方法將用戶輸入的字符串轉換為LocalDateTime對象。如果字符串不符合指定的日期時間格式,則會拋出DateTimeParseException異常,這時就可以判斷用戶輸入的日期時間格式是否正確。
最后,如果轉換成功,可以打印解析后的日期時間。
第三種,用正則表達式
可以使用java.util.regex包中的Pattern和Matcher類來實現。
以下是一個示例代碼,可以驗證日期格式為yyyy-MM-dd,時間格式為HH:mm:ss:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class DateTimeValidator { private static final String DATE_PATTERN = "yyyy-MM-dd"; private static final String TIME_PATTERN = "HH:mm:ss"; public static boolean isValidDate(String date) { return isValidFormat(DATE_PATTERN, date); } public static boolean isValidTime(String time) { return isValidFormat(TIME_PATTERN, time); } private static boolean isValidFormat(String pattern, String value) { boolean isValid = false; Pattern regexPattern = Pattern.compile(pattern); Matcher matcher = regexPattern.matcher(value); if (matcher.matches()) { isValid = true; } return isValid; } }
使用示例:
boolean isDateValid = DateTimeValidator.isValidDate("2021-12-31"); // true boolean isTimeValid = DateTimeValidator.isValidTime("23:59:59"); // true
需要注意的是,這個代碼只能驗證日期時間格式是否正確,而不能驗證具體的日期時間是否合法,例如無效的日期時間如2021-02-29 23:59:59。如果需要驗證具體的日期時間是否合法,需要使用更加復雜的邏輯來進行判斷。
總結
到此這篇關于Java驗證日期時間字符串是否合法的三種方式的文章就介紹到這了,更多相關Java驗證日期時間字符串合法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot實現動態(tài)控制定時任務支持多參數功能
這篇文章主要介紹了SpringBoot實現動態(tài)控制定時任務-支持多參數功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05深入淺出分析Java抽象類和接口【功能,定義,用法,區(qū)別】
這篇文章主要介紹了Java抽象類和接口,結合實例形式深入淺出的分析了java抽象類與接口的功能功能,定義,用法及區(qū)別,需要的朋友可以參考下2017-08-08SpringBoot打包發(fā)布到linux上(centos 7)的步驟
這篇文章主要介紹了SpringBoot打包發(fā)布到linux上(centos 7)的步驟,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下2020-12-12