Problem mit java.util.Calendar

  • Hallo!
    Ich hab ein Problem mit dem java.util.Calendar. Und stehe da offensichtlich gerade auf der Leitung.

    Ich möchte wissen, welchem Wochentag ein bestimmtes Datum entspricht. Dazu hab ich zum Testen folgendes geschrieben:

    Java
    import java.util.Calendar;
    import java.util.GregorianCalendar;
    
    
    public class Test {
        public static void main(String[] args){
            Calendar c1 = new GregorianCalendar(2010, 03, 22);
            System.out.println(c1.get(Calendar.DAY_OF_WEEK));
        }
    }

    Bei dem Datum handelt es sich um einen Montag. Wieso ist der Output dann 5? Sollte das nicht 2 sein?

    Hier noch der Link zu den Konstanten:
    http://java.sun.com/j2se/1.4.2/docs/api/constant-values.html

    Vielleicht findet ja jemand das Problem. Das kann ja nicht mit Timezone oder FirstDayOfWeek zusammenhängen...

  • Hallo!
    Ich hab ein Problem mit dem java.util.Calendar. Und stehe da offensichtlich gerade auf der Leitung.

    Ich möchte wissen, welchem Wochentag ein bestimmtes Datum entspricht. Dazu hab ich zum Testen folgendes geschrieben:

    Java
    import java.util.Calendar;
    import java.util.GregorianCalendar;
    
    
    public class Test {
        public static void main(String[] args){
            Calendar c1 = new GregorianCalendar(2010, 03, 22);
            System.out.println(c1.get(Calendar.DAY_OF_WEEK));
        }
    }

    Bei dem Datum handelt es sich um einen Montag. Wieso ist der Output dann 5? Sollte das nicht 2 sein?

    Hier noch der Link zu den Konstanten:
    http://java.sun.com/j2se/1.4.2/docs/api/constant-values.html

    Vielleicht findet ja jemand das Problem. Das kann ja nicht mit Timezone oder FirstDayOfWeek zusammenhängen...



    Der Monat beim Calendar ist 0 basierend, also wenn du März willst dann wäre die eingabe (2010,2,22)

    lg

  • Deshalb verwendet man in deinem Fall für die Instantierung für den Monat auch Calendar.MARCH.
    Dann kann auch nichts danebengehen, wenn man nicht weiß, dass man bei 0 zu zählen beginnen sollte ^^ außerdem ists im Code schöner zu lesen.

  • java.util.Calendar und java.util.Date sind meiner Meinung nach die schwaechsten Punkte am JDK. Ich wuerde in jedem neuen Projekt auf Joda zurueckgreifen. Das ist eine wesentlich besser durchdachte API, und auch viel einfacher zu benutzen.

  • java.util.Calendar und java.util.Date sind meiner Meinung nach die schwaechsten Punkte am JDK. Ich wuerde in jedem neuen Projekt auf Joda zurueckgreifen. Das ist eine wesentlich besser durchdachte API, und auch viel einfacher zu benutzen.



    Definitiv. Kann Joda ebenfalls nur empfehlen. Wobei ich sagen muss andere Sprachen stehen dem in nichts nach, da erleb ich auch immer wieder Aha Momente wenn ich die Datentypen benutze.

  • Seit gestern gibt es uebrigens ein early draft review fuer ein offizielles JSR (JSR 310), das die derzeitigen Datumsklassen im JDK ersetzen will. Organisiert ist das vom project lead von Joda, dementsprechend orientiert sich JSR 310 auch stark danach.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!