GregorianCalendar Kalenderwoche in SimpelDateFormat auf 2 Systemen verschieden

need.help

Mitglied
Hallo Zusammen

Ich habe ein Problem mit meinem GregorianCalendar und zwar erstelle ich ein Datum welches das Ende der ersten Kalenderwoche 2010 ist (2010-01-10 23:59:59). Aus diesem erstelle ich die WEEK_OF_YEAR und wandle sie in eine 2 stellige Woche (01-52/53 aus sortier technischen Gründen brauch ich immer die 2 Stellen) mit dem SimpelDateFormat.

Java:
GregorianCalendar gc = new GregorianCalendar(tzBerlin, localeCH);
gc.setFirstDayOfWeek(2);
gc.setMinimalDaysInFirstWeek(4);

gc.add(GregorianCalendar.WEEK_OF_YEAR, -(aktuelle Kalenderwoche-1));

gc.set(GregorianCalendar.YEAR, YEAR );
gc.set(GregorianCalendar.HOUR_OF_DAY, 23);
gc.set(GregorianCalendar.MINUTE, 59);
gc.set(GregorianCalendar.SECOND, 59);
gc.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.SUNDAY);

SimpleDateFormat WeekFormat = new SimpleDateFormat("ww");
String twoDigitWeek = WeekFormat.format(gc.getTime());

Nun das Problem: Local erhalte ich die Woche "01" auf meinem WCM jedoch Woche "03". Ich habe schon die gc.toString(); Methode ausgegeben und verglichen diese sind 100% Identisch. Selbes Datum, selbe Kalenderwoche, selbe Einstellungen. Local läuft Win7 jdk1.6.0_21, das WCM läuft unter RedHat und jdk1.6.0_10. Wurde in den Versionen was am SimpelDateFormat geändert? Seh ich den Wald vor lauter Bäumen nicht?


MfG

PS: Entschuldigt mich fals ich im falschen board bin, hab die übersicht über alles boards noch nicht.
 
Zuletzt bearbeitet:
was liefert denn
gc.get(Calendar.WEEK_OF_YEAR)
?
wenn da der falsche Wert rauskommt ist SimpleDateFormat unschuldig, das sollte den eh nur abfragen und durchreichen

wird es richtiger wenn du VOR dieser Abfrage
gc.getTime()
ausgibst? kommt dabei überhaupt 10.1.2010 raus?
 
jaja, irgendwas war da doch,
notfalls zwischen jedem einzelnen Änderungsschritt getTime() und andere Dinge abfragen
 
WEEK_OF_YEAR = 1 aufm local sowie aufm WCM.
gc.getTime(); ist auch immer 2010-01-10 23:59:59 egal an welcher Stelle.

SimpelDateTime will aus 2010-01-10 23:59:59 einfach nicht Woche "01" machen aufm WCM 🙁


MfG
 
und wenn du in einer for-Schleife 10x eine Woche draufaddierst, dann ist die Ausgabe 3, 4, 5, 6, .. statt 1, 2, 3, .. oder ganz was anderes?

wie weit gehts es am Ende des Jahres, bzw. wie sieht es zurück in 2009 aus, gibt es dann eine 53./54. Woche oder ist Ende Dezember als erste Woche markiert?
 
Ja die ausgabe in der Schleife is dann einfach 3, 4, 5, 6 ... 52 was aber bereits im Dezember ist!

Wenn ich zurück geh ins 2009 dann ist die Woche 53 (2010-01-03 23:59:59) Woche "02". 2011 beginnt auch wieder mit Woche "03", Woche "02" und "01" sind noch im Dez 2010.

Also ein Jahr geht von 03, 04, 05, 06 ... 50, 51, 52, 01, 02.


MfG
 
reichlich spät fällt mir noch ein, dass du bei SimpleDateFormat auch setTimeZone() aufrufen kannst,
aber das sollte ja keine Wochen-Zählung-Unterschiede bringen,

ich kann nichts mehr beitragen,

halt, noch ein Test um alle möglichen Änderungen von dir auszuschließen:
liefert das SimpleDateFormat auch für ein simples new Date()-Objekt ganz ohne Calendar was falsches?
new Date() = aktuelle Zeit, 48 wäre also die richtige Woche
 
Zuletzt bearbeitet von einem Moderator:
reichlich spät fällt mir noch ein, dass du bei SimpleDateFormat auch setTimeZone() aufrufen kannst,
aber das sollte ja keine Wochen-Zählung-Unterschiede bringen,

BINGO!

Java:
WeekFormat.setCalendar(gc);

Das übernimmt die TimeZone und Locale Einstellungen vom GregorianCalendar den ich erstellet habe. Damit funktionierts 🙂

Vielen Dank!

MfG
 

Zurück
Oben