Hallo,
ich erzeuge mit folgendem Code ein GregorianCalendar-Objekt:
// get current year to determine the current century
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
// create time
time = new GregorianCalendar(
year < 100 ? cal.get(Calendar.YEAR) / 100 * 100 + year : year,
month, dayOfMonth, hourOfDay, minute);
time.setTimeZone(TimeZone.getTimeZone("CET"));
time.set(GregorianCalendar.AM_PM, hourOfDay < 12 ? GregorianCalendar.AM
: GregorianCalendar.PM);
Die Variablen year, month, dayOfMonth, hourOfDay und minute sind Methodenparameter vom Typ int.
Lasse ich mir nun das Datum mit folgendem Code ausgeben, erscheint immer der falsche Wochentag:
int hour = gregCal.get(GregorianCalendar.HOUR);
if (gregCal.get(GregorianCalendar.AM_PM) == GregorianCalendar.PM) {
hour += 12;
}
int minute = gregCal.get(GregorianCalendar.MINUTE);
int day = gregCal.get(GregorianCalendar.DAY_OF_MONTH);
int month = gregCal.get(GregorianCalendar.MONTH);
int year = gregCal.get(GregorianCalendar.YEAR);
fw.write((hour < 10 ? "0" + hour : hour)+ ":"
+ (minute < 10 ? "0" + minute : minute) + " "
+ gregCal.getDisplayName(GregorianCalendar.DAY_OF_WEEK,
GregorianCalendar.SHORT,new Locale("de", "DE")) + ", "
+ (day < 10 ? "0" + day : day) + "."
+ (month < 10 ? "0" + month : month) + "."
+ (year < 10 ? "0" + year : year));
fw ist dabei eine FileWriter und gregCal ein GregorianCalendar. Das ausgegebene Datum hat dann die Form:
20:31 Mo, 08.10.2010
Der 8.10.2010 ist allerdings ein Freitag.
Wie kann ich diese falsche Anzeige beheben?
Viele Grüße
Dominik