Morgen,
bei meinem Programm soll der Benutzer ein Datum mit Uhrzeit als String eingeben. Danach wird diese Eingabe in ein GregorianCalendar umgewandelt. Die Uhrzeit, soll aber immer in Winterzeit sein, d.h. wenn das Datum in der Sommerzeit liegt, soll 1 Stunde abgezogen werden.
Was ich bis jetzt hab:
if(datum.getTimeZone().inDaylightTime(datum.getTime())){
datum.add(Calendar.HOUR, -1);}
Das funktioniert aber nicht immer.
Es ist z.b. 3:30 ist, d.h. 30 Minuten nach anfang der Sommerzeit: Wenn ich jetzt 1 Stunde abziehe, ist die neue Uhrzeit: 0:30. Das liegt dadran, das es die Stunde zwischen 2 und 3 nicht gibt und sie deswegen übersprungen wird. Die Berechnungen, die danach kommen, sollen aber mit 2:30 rechnen.
Vllt. gibt es ja eine Methode, die das komplette Calendar system auf Winterzeit umstellt. Ich hab sie bis jetzt nur leider noch nicht gefunden (und ich hab hier schon viel Zeit reingesteckt).
bei meinem Programm soll der Benutzer ein Datum mit Uhrzeit als String eingeben. Danach wird diese Eingabe in ein GregorianCalendar umgewandelt. Die Uhrzeit, soll aber immer in Winterzeit sein, d.h. wenn das Datum in der Sommerzeit liegt, soll 1 Stunde abgezogen werden.
Was ich bis jetzt hab:
if(datum.getTimeZone().inDaylightTime(datum.getTime())){
datum.add(Calendar.HOUR, -1);}
Das funktioniert aber nicht immer.
Es ist z.b. 3:30 ist, d.h. 30 Minuten nach anfang der Sommerzeit: Wenn ich jetzt 1 Stunde abziehe, ist die neue Uhrzeit: 0:30. Das liegt dadran, das es die Stunde zwischen 2 und 3 nicht gibt und sie deswegen übersprungen wird. Die Berechnungen, die danach kommen, sollen aber mit 2:30 rechnen.
Vllt. gibt es ja eine Methode, die das komplette Calendar system auf Winterzeit umstellt. Ich hab sie bis jetzt nur leider noch nicht gefunden (und ich hab hier schon viel Zeit reingesteckt).