2010-12-23 13 views
5

Gibt es eine vordefinierte Klasse in Java, so dass, wenn ich ein Datum übergebe, sollte es zurückkehren, wenn es ein gültiges Datum ist oder nicht? Zum Beispiel, wenn ich es am 31. Februar eines Jahres verlasse, dann sollte es falsch zurückgeben, und wenn das Datum existiert, dann sollte es mich für jedes Datum eines Jahres zurückgeben.Prüfen, ob ein Datum existiert oder nicht in Java

Und ich möchte auch eine Methode, die mir sagen würde, welcher Wochentag dieses bestimmte Datum ist. Ich bin durch den Kalender gegangen, aber ich habe nicht verstanden, wie ich das machen soll.

+0

Wenn Sie versuchen, ein Datum-Objekt zu erstellen, die es wahrscheinlich nicht existiert wird eine Ausnahme werfen. Nicht sicher, aber nie Daten in Java verwendet. – Falmarri

+0

was er (Falmarri) sagte ... – st0le

+0

@ st0le - was? Bist du dir auch unsicher? :-) –

Antwort

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 
    } 
+0

Sie sind herzlich willkommen. werfen Sie einen Blick auf SimpleDateFormat http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html. Sie können formatString an Ihre Bedürfnisse für einen Wochentag ändern, für eine Stunde sogar für eine Minute :) –

+0

@sasidhar Ich empfehle Ihnen wirklich einen Blick auf Joda Zeit. Es wird die Standard-Datums-API ab JDK7 sein, aber Sie können es jetzt verwenden. Es hat alle Arten von schönen Methoden, eine davon ist GetDatOfWeek. –

+0

Seine Rückkehr am 31. Februar existiert ............ es wird einfach überprüft, ob das Datum weniger als 31 ist und der Monat weniger als 12 und das Jahr gültig ist ... das ist alles ... Aber das ist nicht die Funktionalität, die ich will .... :(bitte helfen .... – sasidhar

-1

diese Weise können Sie an Wochentagen ab dem Datum bekommen

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

Der Schlüssel ist DateFormat#isLenient(false) zu nennen, damit es nicht Werte rollen, die während der Analyse außer Reichweite sind:

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". 

Natürlich können Sie jedes tatsächliche Datumsformat verwenden, das Sie benötigen.

Verwandte Themen