如何检查字符串是否只包含 Java 中的日期格式?
How to check if String contains a only Date format in Java?
- 如何查找完全包含日期格式的字符串,而不是单一日期格式的检查,我想检查各种格式的字符串?
- 如果一个字符串匹配各种格式意味着return布尔值。
- 是否可以使用日期数组?
这是示例代码行:
Date[] dates = {"12/09/2014","2014/09/09"....};
有几种方法可以做到这一点。例如,您可以通过这样设置来测试几种已知的日期格式,然后使用 for 循环检查您的日期字符串。
// List of all date formats that you want to parse
private static List<simpledateformat>;
dateFormats = new ArrayList<simpledateformat>() {{
add(new SimpleDateFormat("M/dd/yyyy"));
add(new SimpleDateFormat("dd.M.yyyy"));
add(new SimpleDateFormat("M/dd/yyyy hh:mm:ss a"));
add(new SimpleDateFormat("dd.M.yyyy hh:mm:ss a"));
add(new SimpleDateFormat("dd.MMM.yyyy"));
add(new SimpleDateFormat("dd-MMM-yyyy"));
}
这是另一个人的完整实现:http://viralpatel.net/blogs/check-string-is-valid-date-java/
您也可以使用正则表达式。这里有一些示例代码可以完成您的要求: http://www.mkyong.com/regular-expressions/how-to-validate-date-with-regular-expression/
日期d=新日期();
System.out.println("DATE :"+ new SimpleDateFormat("dd.M.yyyy").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("M/dd/yyyy").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("M/dd/yyyy hh:mm:ss a").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("dd.M.yyyy hh:mm:ss a").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("M/dd/yyyy").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("dd.MMM.yyyy").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("dd-MMM-yyyy").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("EEEE, MMMM d, yyyy HH:mm z").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("MMMM d, yyyy HH:mm z").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("EEE, MMM d, yyyy HH:mm z").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("MMM d, yyyy HH:mm z").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("EEE, MM/dd/yyyy HH:mm:ss z").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("MM/dd/yyyy HH:mm:ss z").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("EEE, M/d/yy hh:mm").format(d));
- 如何查找完全包含日期格式的字符串,而不是单一日期格式的检查,我想检查各种格式的字符串?
- 如果一个字符串匹配各种格式意味着return布尔值。
- 是否可以使用日期数组?
这是示例代码行:
Date[] dates = {"12/09/2014","2014/09/09"....};
有几种方法可以做到这一点。例如,您可以通过这样设置来测试几种已知的日期格式,然后使用 for 循环检查您的日期字符串。
// List of all date formats that you want to parse
private static List<simpledateformat>;
dateFormats = new ArrayList<simpledateformat>() {{
add(new SimpleDateFormat("M/dd/yyyy"));
add(new SimpleDateFormat("dd.M.yyyy"));
add(new SimpleDateFormat("M/dd/yyyy hh:mm:ss a"));
add(new SimpleDateFormat("dd.M.yyyy hh:mm:ss a"));
add(new SimpleDateFormat("dd.MMM.yyyy"));
add(new SimpleDateFormat("dd-MMM-yyyy"));
}
这是另一个人的完整实现:http://viralpatel.net/blogs/check-string-is-valid-date-java/
您也可以使用正则表达式。这里有一些示例代码可以完成您的要求: http://www.mkyong.com/regular-expressions/how-to-validate-date-with-regular-expression/
日期d=新日期();
System.out.println("DATE :"+ new SimpleDateFormat("dd.M.yyyy").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("M/dd/yyyy").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("M/dd/yyyy hh:mm:ss a").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("dd.M.yyyy hh:mm:ss a").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("M/dd/yyyy").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("dd.MMM.yyyy").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("dd-MMM-yyyy").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("EEEE, MMMM d, yyyy HH:mm z").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("MMMM d, yyyy HH:mm z").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("EEE, MMM d, yyyy HH:mm z").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("MMM d, yyyy HH:mm z").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("EEE, MM/dd/yyyy HH:mm:ss z").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("MM/dd/yyyy HH:mm:ss z").format(d));
System.out.println("DATE :"+ new SimpleDateFormat("EEE, M/d/yy hh:mm").format(d));