... the user friendly GPS tool


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Fehler bei der Behandlung von Zeitzonen?
#3
(13.07.2010, 07:30)routeconverter Wrote:
(12.07.2010, 23:37)brazzy Wrote: Das Problem ist, daß die Zeitstempel aus den Dateien mit der Default-Zeitzone geparst werden, d.h. hierzulande Europe/Berlin.

Woraus schließt Du das?
Na daraus, daß ich falsche Ergebnisse bekomme, und im Debugger verfolgen kann, wie die zustande kommen.

(13.07.2010, 07:30)routeconverter Wrote: Bei NMEA z.B. wird der CompactCalendar verwendet:

[...]

public static CompactCalendar fromCalendar(Calendar calendar) {
return new CompactCalendar(calendar.getTimeInMillis(), calendar.getTimeZone().getID());
}

public static CompactCalendar getInstance() {
return fromCalendar(Calendar.getInstance());
}

private CompactCalendar(long timeInMillis, String timeZoneId) {
this.timeInMillis = timeInMillis;
this.timeZoneId = timeZoneId.equals("GMT") ? "GMT" : timeZoneId.intern();
}

[...]

Du siehst: viel Gehampelt mit Zeitzonen.

Die Zeitzone wird aus dem übergebenen Calendar übernommen. Und woher hat der sie? In BaseNmeaFormat.java finde ich:

private static final DateFormat PRECISE_DATE_AND_TIME_FORMAT = new SimpleDateFormat("ddMMyy HHmmss.SSS");

[...]

Date parsed = PRECISE_DATE_AND_TIME_FORMAT.parse(dateAndTime);
Calendar calendar = Calendar.getInstance();
calendar.setTime(parsed);
return CompactCalendar.fromCalendar(calendar);


Tja, SimpleDateFormat nimmt leider die Default-Zeitzone wenn man sie nicht explizit setzt oder sie im Pattern vorkommt. Damit kommt schonmal beim Parsen das definitiv falsche Ergebnis raus. Daß der mit Calendar.getInstance() geholte Calendar dann die Default-Zeitzone in den CompactCalendar weitergibt ist dann auch schon egal.

Zeitzonen sind was ekliges, ich hab da bei meinem Projekt auch schon genug Lehrgeld bezahlt...

(13.07.2010, 07:30)routeconverter Wrote: Schau mal in den Code und schreib einen Test wie in TimeZoneTest, der zeigt, wo das Problem liegt.

Ist angehängt.


Attached Files
.txt   RouteConverterNmeaTest.java.txt (Size: 2.34 KB / Downloads: 753)
Reply


Messages In This Thread
RE: Fehler bei der Behandlung von Zeitzonen? - by brazzy - 14.07.2010, 21:01

Forum Jump:


Users browsing this thread: 1 Guest(s)