Links: Favorisierte Java Portale SimpleDateFormat ist nicht thread-sicher
Aug 13

Die Funktion parse(String) der Klasse java.text.DateFormat verarbeitet standardmäßig auch unsinnige Datumsangaben. Hier ist ein kleines Beispiel, welches das Verhalten der Funktion demonstriert:

public class DateFormatTest {
  public static void main(String[] args)
      throws ParseException {
    DateFormat dateFormat =
      new SimpleDateFormat("dd-MM-yyyy");
    // Thu Mar 01 00:00:00 CET 2007
    System.out.println(dateFormat.parse("29-02-2007"));
    // Fri Mar 02 00:00:00 CET 2007
    System.out.println(dateFormat.parse("30-02-2007"));
    // Sat Mar 03 00:00:00 CET 2007
    System.out.println(dateFormat.parse("31-02-2007"));
    // Sun Mar 04 00:00:00 CET 2007
    System.out.println(dateFormat.parse("32-02-2007"));

    dateFormat.setLenient(false);
    // throws java.text.ParseException
    System.out.println(dateFormat.parse("29-02-2007"));
  }
}

Wie man dem Beispiel entnehmen kann, wird ein zu hoher Datumswert einfach auf den nächsten Monat übertragen. Dieser Modus lässt sich jedoch über den Aufruf von „setLenient(false)“ ausschalten.

» » »
Ähnliche Artikel:
  • No related posts


Hinterlasse einen Kommentar