Ich habe dieses Stück Code:Calendar.HOUR_OF_DAY Verwirrung
Calendar cal = Calendar.getInstance();
cal.setTime(pDatum);
cal.set(Calendar.HOUR_OF_DAY, Integer.valueOf(pHHMMTP.substring(0, 2)));
cal.set(Calendar.MINUTE, Integer.valueOf(pHHMMTP.substring(2, 4)));
cal.set(Calendar.MILLISECOND, 0);
System.out.println(cal.getTime());
wo pDatum
Sun Mar 27 00:00:00 CET 2016
ist, pHHMMTP
ist 02485
und pHHMMTP.substring(0, 2)
ist 02
.
Die Ausgabe lautet:
Sun 27. März 03.48.00 CEST 2016
Ich würde erwarten:
Sun 27. März 02.48.00 CEST 2016
Zuerst dachte ich, es ist ein TimeZone
Problem, aber wi th diesen Code bekomme ich die gleiche Ausgabe:
Calendar cal = Calendar.getInstance();
TimeZone tz = TimeZone.getTimeZone("GMT");
cal.setTimeZone(tz);
cal.setTime(pDatum);
cal.set(Calendar.HOUR_OF_DAY, Integer.valueOf(pHHMMTP.substring(0, 2)));
cal.set(Calendar.MINUTE, Integer.valueOf(pHHMMTP.substring(2, 4)));
cal.set(Calendar.MILLISECOND, 0);
Sehen Sie mein Problem?
ja, das war das Problem. Die Sommerzeit ändern ... Thx viel –
@Tom Der Grund dahinter, dass die OP den falschen Tag und die falsche Stunde verwendet, weil die Zeitschaltuhr zwischen 02:00 Uhr und 03:00 Uhr fertig ist. Infolgedessen existiert '27 Mar 02: 48' nicht. Uhren zählen wie 02:58 Uhr, 02:59 Uhr, 4:00 Uhr, 4:01 Uhr ... –
@Tom bearbeitet. Versucht, um es klar zu machen, aber mein Englisch ist nicht sehr gut :) Zögern Sie nicht zu bearbeiten und umzuformulieren, wenn Sie ein Muttersprachler sind. –