import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 功能:判斷字符串是否爲日期格式
*
* @param str
* @return
*/
public static boolean isDate(String strDate) {
Pattern pattern = Pattern
.compile("^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1-2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$");
Matcher m = pattern.matcher(strDate);
if (m.matches()) {
return true;
} else {
return false;
}
}
用正則檢查某特定格式是否正確
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DataTest {
public static void main (String [] args){
String str = "2007-10-02";
String regex = "[0-9]{4}-[0-9]{2}-[0-9]{2}";
Pattern pattern = Pattern.compile(regex);
Matcher m = pattern.matcher(str);
boolean dateFlag = m.matches();
if (!dateFlag) {
System.out.println("格式錯誤");
return ;
}
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
formatter.setLenient(false);
try{
Date date = formatter.parse(str);
System.out.println(date);
System.out.print("格式正確!");
}catch(Exception e){
System.out.println("格式錯誤!");
}
}
}