Lassen Sie sich den folgenden Code betrachten:seltsames Problem mit Zeitzone, Kalender und Simple
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss dd/MM/yyyy", Locale.US);
long start = sdf.parse("10:30:00 30/09/2009").getTime();
long end = sdf.parse("10:30:00 30/10/2009").getTime();
Calendar c = Calendar.getInstance(Locale.US);
c.setTimeInMillis(start);
System.out.println("Start = " + c.getTime());
c.setTimeInMillis(end);
System.out.println(" End = " + c.getTime());
Wenn diesen Code-Schnipsel laufen, ich habe die folgende Ausgabe:
Start = Wed Sep 30 10:30:00 CEST 2009
End = Fri Oct 30 10:30:00 CET 2009
Warum erhalte ich andere Zeitzone?
anzumerken, dass, wenn ich das erste Datum im August und die zweiten im September gesetzt ist, wird der Ausgang in beiden Fällen dieselbe Zeitzone anzuzeigen:
long start = sdf.parse("10:30:00 30/08/2009").getTime();
long end = sdf.parse("10:30:00 30/09/2009").getTime();
anzeigt:
Start = Sun Aug 30 10:30:00 CEST 2009
End = Wed Sep 30 10:30:00 CEST 2009
I mit ‚m Java 1.6.0_14
Ist es zum Winter Zeitschaltuhr Ende Oktober zu tun? Wenn ja, wie kann man das loswerden? – romaintaz
Sie nicht. Sie können die "CEST" auf "CET" zwingen, aber das wird zu einer anderen Stunde führen (der Oktober wird 11:30 anstelle von 10:30 sein). Es ist das gleiche wie GMT (na ja, jetzt UTC) und London Zeit: wenn DST an ist, London Zeit technisch GMT + 1 MEZ ist GMT + 2 usw. – laura
Was genau tun Sie erreichen wollen? * Warum * denkst du, du musst die Sommerzeit loswerden? –