gpt4 book ai didi

java - 如何在 Java 中针对多种模式格式验证日期?

转载 作者:行者123 更新时间:2023-11-29 03:10:17 24 4
gpt4 key购买 nike

我的问题不是“怎么做”,我的问题是涉及的极端情况。这是我的代码和测试用例。

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

由于我的测试用例满足两个给定模式,因此我得到两个输出。

我怎样才能避免这种情况呢?还有哪些其他方法可以进行此类多模式验证?

最佳答案

我认为唯一可靠的方法是提前知道日期格式。你永远不知道 01/01/2014 是 dd/MM/yyyy 还是 MM/dd/yyyy

关于java - 如何在 Java 中针对多种模式格式验证日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29751244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com