2010-12-23 227 views
5

Java中是否存在任何预定义的类,如果我将它传递给日期,它应该返回,如果它是有效日期?例如,如果我在某年的二月三十一日通过它,那么它应该返回false,如果日期存在,那么它应该在任何一年的任何日期返回true。检查Java中是否存在日期

而且我还想要一个方法来告诉我这个特定日期的工作日。我经历了日历课,但我没有得到如何做到这一点。

+0

如果试图创建一个日期对象不存在,它可能会抛出异常。不确定,但从未在java中使用日期。 – Falmarri 2010-12-23 07:07:28

+0

他(法尔玛利)说的...... – st0le 2010-12-23 07:12:38

回答

14

How to Validate a Date in Java

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 
    } 
-1

你可以使用这个从日获得平日

Calendar currentDate = Calendar.getInstance(); //or your specified date. 
    int weekDay = currentDate.get(Calendar.DAY_OF_WEEK); 
4

,关键是要叫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". 

当然,您可以使用您需要的任何实际日期格式。