第一種,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 {
// 將日期時間字符串轉(zhuǎn)化為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()方法將待驗證的日期時間字符串轉(zhuǎn)化為Date對象,如果轉(zhuǎn)化成功,則表示該日期時間字符串符合指定的格式和有效性,否則將拋出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方法將用戶輸入的字符串轉(zhuǎn)換為LocalDateTime對象。如果字符串不符合指定的日期時間格式,則會拋出DateTimeParseException異常,這時就可以判斷用戶輸入的日期時間格式是否正確。
最后,如果轉(zhuǎn)換成功,可以打印解析后的日期時間。
第三種,用正則表達(dá)式
可以使用java.util.regex包中的Pattern和Matcher類來實現(xiàn)。
以下是一個示例代碼,可以驗證日期格式為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;
}
}
使用示例:文章來源:http://www.zghlxwxcb.cn/news/detail-762642.html
boolean isDateValid = DateTimeValidator.isValidDate("2021-12-31"); // true
boolean isTimeValid = DateTimeValidator.isValidTime("23:59:59"); // true
需要注意的是,這個代碼只能驗證日期時間格式是否正確,而不能驗證具體的日期時間是否合法,例如無效的日期時間如2021-02-29 23:59:59。如果需要驗證具體的日期時間是否合法,需要使用更加復(fù)雜的邏輯來進(jìn)行判斷。文章來源地址http://www.zghlxwxcb.cn/news/detail-762642.html
到了這里,關(guān)于Java中驗證日期時間字符串是否合法的幾種方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!