jsp判斷字串是否為yyyy-MM-dd 或yyyy/MM/dd日期資料。
String str1="2000-1-1";
String str2="2000-1-32";
String str3="2000/2/2";
str3="2018/09/09a";
boolean str3IsDate=isDate0(str3);
out.println("str3 isDate:"+str3IsDate);
輸出:str3 isDate:false
//判斷字串是否為yyyy-MM-dd 或yyyy/MM/dd日期資料。
public static boolean isDate0(String str) {
boolean isDate=false;
if(str.length()>10)
{
return isDate;
}
else
{
isDate=isDate2(str);
if(isDate==false)
{
isDate=isDate1(str);
}
else
{
str=str.replace("/", "-");
isDate=isDate1(str);
}
return isDate;
}
}
//判斷字串是否為yyyy-MM-dd 日期資料。
//https://blog.csdn.net/habewow/article/details/80421157
public static boolean isDate1(String str) {
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");//括號內為日期格式,y代表年份,M代表年份中的月份(為避免與小時中的分鐘數m衝突,此處用M),d代表月份中的天數
try {
sd.setLenient(false);//此處指定日期/時間解析是否不嚴格,在true是不嚴格,false時為嚴格
sd.parse(str);//從給定字串的開始解析文字,以生成一個日期
} catch (Exception e) {
return false;
}
return true;
}
//判斷字串是否為yyyy/MM/dd字元資料。
public static boolean isDate2(String str) {
SimpleDateFormat sd = new SimpleDateFormat("yyyy/MM/dd");//括號內為日期格式,y代表年份,M代表年份中的月份(為避免與小時中的分鐘數m衝突,此處用M),d代表月份中的天數
try {
//sd.setLenient(false);//此處指定日期/時間解析是否不嚴格,在true是不嚴格,false時為嚴格
sd.parse(str);//從給定字串的開始解析文字,以生成一個日期
} catch (Exception e) {
return false;
}
return true;
}