Hallo,
ich habe mal eine frage zum Kalender. Ich habe folgenden Quellcode:
Heute ist Montag, der 26.11.2012.
Meinem Verständnis nach sollte die Änderung des Wochentags eine Änderung im Datum zur Folge haben.
Die Ausgabe des Codes ist aber:
Wie kann das sein?
Ich habe gerade noch einen Test gemacht. Wenn ich anstatt den Kalender mit Jahr, Monat und Tag zu initialisieren die setTime Methode verwende, funktioniert es:
Nun ist die Ausgabe wie erwartet:
Ich versteh da den Unterschied nicht, kann mir das jemand erklären?
Viele Grüße
Flashbaer
ich habe mal eine frage zum Kalender. Ich habe folgenden Quellcode:
Java:
public static void main(String[] args) {
Calendar currentDate = new GregorianCalendar();
System.out.println(String.format("%04d-%02d-%02d", currentDate.get(Calendar.YEAR), currentDate.get(Calendar.MONTH) + 1, currentDate.get(Calendar.DAY_OF_MONTH)));
Calendar cal2 = new GregorianCalendar(currentDate.get(Calendar.YEAR), currentDate.get(Calendar.MONTH), currentDate.get(Calendar.DAY_OF_MONTH));
cal2.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
System.out.println(String.format("%04d-%02d-%02d", cal2.get(Calendar.YEAR), cal2.get(Calendar.MONTH) + 1, cal2.get(Calendar.DAY_OF_MONTH)));
}
Meinem Verständnis nach sollte die Änderung des Wochentags eine Änderung im Datum zur Folge haben.
Die Ausgabe des Codes ist aber:
Code:
2012-11-26
2012-11-26
Wie kann das sein?
Ich habe gerade noch einen Test gemacht. Wenn ich anstatt den Kalender mit Jahr, Monat und Tag zu initialisieren die setTime Methode verwende, funktioniert es:
Java:
Calendar cal2 = new GregorianCalendar();
cal2.setTime(currentDate.getTime());
cal2.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
System.out.println(String.format("%04d-%02d-%02d", cal2.get(Calendar.YEAR), cal2.get(Calendar.MONTH) + 1, cal2.get(Calendar.DAY_OF_MONTH)));
Code:
2012-12-02
Ich versteh da den Unterschied nicht, kann mir das jemand erklären?
Viele Grüße
Flashbaer