在Java中是否有任何预定义的类,如果我传递一个日期,它应该返回,如果它是一个有效的日期?例如,如果我在一年的2月31日通过它,那么它应该返回false,如果日期存在,则它应该返回true,对于任何一年的任何日期.
而且我还想要一种方法来告诉我这个特定日期的工作日.我经历了日历课程,但我没有得到如何做到这一点.
小智 16
private static boolean isValidDate(String input) {
String formatString = "MM/dd/yyyy";
try {
SimpleDateFormat format = new SimpleDateFormat(formatString);
format.setLenient(false);
format.parse(input);
} catch (ParseException e) {
return false;
} catch (IllegalArgumentException e) {
return false;
}
return true;
}
public static void main(String[] args){
System.out.println(isValidDate("45/23/234")); // false
System.out.println(isValidDate("12/12/2111")); // true
}
Run Code Online (Sandbox Code Playgroud)
关键是调用DateFormat#isLenient(false),以便在解析过程中不会滚动超出范围的值:
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
format.parse("2010-02-31"); //=> Ok, rolls to "Wed Mar 03 00:00:00 PST 2010".
format.setLenient(false);
format.parse("2010-02-31"); //=> Throws ParseException "Unparseable date".
Run Code Online (Sandbox Code Playgroud)
当然,您可以使用您需要的任何实际日期格式.
| 归档时间: |
|
| 查看次数: |
11173 次 |
| 最近记录: |