自己想的一个java日期验证,不用正则表达式
可以验证多种format格式的日期
这个在我博客里面的验证类中有。有需要的朋友可以去下载。
方法:
private static final String DATE_DEFAULT_FORMAT = "yyyyMMdd"; /** * string is date * * @author xieyan 2012/10/22 * @param str checked string * @param formatStr format * @return true:is date | false:is not date */ public static boolean isDate(String str, String formatStr) { if (isNull(str)) return false; if (isNullOrEmpty(formatStr)) formatStr = DATE_DEFAULT_FORMAT; if (str.length() != formatStr.length()) return false; SimpleDateFormat format = new SimpleDateFormat(formatStr); try { return str.equals(format.format(format.parse(str))); // 这里用equals主要是为了防止像20121032这样数据会转为20121101 } catch (ParseException e) { return false; } }
junit方法
/** * test StringUtilities.isDate */ public void testIsDate() { // string is 20121022 assertTrue(StringUtilities.isDate("20121022", "")); // string is 20121022 assertTrue(StringUtilities.isDate("20121022", null)); // string is 20121022, format is yyyyMMdd assertTrue(StringUtilities.isDate("20121022", "yyyyMMdd")); // string is 2012/10/22, format is yyyy/MM/dd assertTrue(StringUtilities.isDate("2012/10/22", "yyyy/MM/dd")); // string is 2012-10-22, format is yyyy-MM-dd assertTrue(StringUtilities.isDate("2012-10-22", "yyyy-MM-dd")); // string is 20121022 11:53:00.123, format is yyyyMMdd hh:mm:ss.SSS assertTrue(StringUtilities.isDate("20121022 11:53:00.123", "yyyyMMdd hh:mm:ss.SSS")); // string is 2012122, format is yyyyMdd assertFalse(StringUtilities.isDate("2012132", "yyyyMdd")); // string is 2012/10/22, format is yyyy/MM/dd assertFalse(StringUtilities.isDate("20121032", "yyyy-MM-dd")); // string is 2012/10/22, format is yyyy/MM/dd assertFalse(StringUtilities.isDate("20121032", "yyyyMMdd")); // string is 2012122, format is yyyyMMdd assertFalse(StringUtilities.isDate("2012132", "yyyyMMdd")); // string is "" assertFalse(StringUtilities.isDate("", "yyyyMMdd")); // string is "null" assertFalse(StringUtilities.isDate("null", "yyyyMMdd")); // string is null assertFalse(StringUtilities.isDate(null, "yyyyMMdd")); }
有异议的朋友可以短信我。