本文介紹了如何在Java中針對多模式格式驗證日期?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我的問題不是”怎么做”,我的問題是涉及的角落案件。以下是我的代碼和測試用例。
package datetest.com;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class MultipleDateParserFormat {
private final static String[] PossibleDateFormat=new String[]{
"MM/dd/yyyy",
"MM.dd.yyyy",
"MM-dd-yyyy",
"yyyy/MM/dd",
"yyyy.MM.dd",
"yyyy-MM-dd",
"dd/MM/yyyy",
"dd.MM.yyyy",
"dd-MM-yyyy"
};
public MultipleDateParserFormat(){};
public void checkParseDate(String passedDate){
int PossibleDateFormatLength=PossibleDateFormat.length;
for(int i=0;i<PossibleDateFormatLength;i++){
try {
SimpleDateFormat simpleDateFormant=new SimpleDateFormat(PossibleDateFormat[i]);
simpleDateFormant.setLenient(false);
java.util.Date date= simpleDateFormant.parse(passedDate);
System.out.println(date);
} catch (ParseException e) {
System.out.println("Parse Exception Occured for your input Value"+passedDate + "for format" + PossibleDateFormat[i]);
}
}
}
public static void main(String...strings){
String passedDate="4-03-1992";// This test case is validating against two Pattern
MultipleDateParserFormat multipleDateParserFormat= new MultipleDateParserFormat();
multipleDateParserFormat.checkParseDate(passedDate);
}
}
以下是我運行此代碼時得到的輸出:
Parse Exception Occured for your input Value4-03-1992for formatMM/dd/yyyy
Parse Exception Occured for your input Value4-03-1992for formatMM.dd.yyyy
Fri Apr 03 00:00:00 IST 1992
Parse Exception Occured for your input Value4-03-1992for formatyyyy/MM/dd
Parse Exception Occured for your input Value4-03-1992for formatyyyy.MM.dd
Parse Exception Occured for your input Value4-03-1992for formatyyyy-MM-dd
Parse Exception Occured for your input Value4-03-1992for formatdd/MM/yyyy
Parse Exception Occured for your input Value4-03-1992for formatdd.MM.yyyy
Wed Mar 04 00:00:00 IST 1992
因為我的測試用例滿足兩個給定的模式,所以我得到兩個輸出。
我如何在這里避免這樣的情況?進(jìn)行這種多重模式驗證的其他方式有哪些?
推薦答案
我認(rèn)為唯一可靠的方法是提前知道日期格式。你永遠(yuǎn)不知道2014年1月1日是dd/MM/yyyy還是MM/dd/yyyy
這篇關(guān)于如何在Java中針對多模式格式驗證日期?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,