Farbschema: Dunkel
Sie befinden sich hier: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Office JSON » troubleshooting » Ein aus JSON gelesenes Datum ist um einige Stunden verschoben

Ein aus JSON gelesenes Datum ist um einige Stunden verschoben

Ein Zeitstempel wie "2026-09-25T12:30:00Z" kommt in VBA als 14:30 an, oder ein nach JSON geschriebenes Datum erscheint in einem anderen System verschoben.

Umgebung

Alle Versionen von WKL Office JSON.

Ursache

  • Beim Lesen: Eine Uhrzeit mit Zone (Z für UTC, +02:00) wird gemäß JDoc.DateZone umgerechnet. Der Standardwert jdzLocal rechnet in die Ortszeit von Windows um; in der mitteleuropäischen Sommerzeit wird aus 12:30Z daher 14:30. Das ist richtig, wenn der Wert mit Now() verglichen wird, aber nicht, wenn die Datenbank UTC speichert.
  • Beim Schreiben: Ein VBA-Date hat keine Zone und wird ohne Zone geschrieben. Ein empfangendes System, das UTC annimmt, liest eine Ortszeit als UTC.

Lösung

  1. Bei Datenbanken, die UTC speichern, setzen Sie vor dem Lesen doc.DateZone = jdzUtc.
  2. Um Uhrzeiten so zu behalten, wie sie geschrieben sind, setzen Sie doc.DateZone = jdzAsWritten.
  3. Bevor Sie an ein System schreiben, das UTC erwartet, rechnen Sie die Ortszeit in VBA in UTC um und hängen die Zone selbst an eine Zeichenfolge an, zum Beispiel doc.SetValue "$.at", Format(utcTime, "yyyy-mm-dd\Thh:nn:ss") & "Z".

Siehe Datums- und Uhrzeitwerte lesen und schreiben.

de/wiki/msaccess/json/troubleshooting/date-shifted.txt · Zuletzt geändert: von Wolfgang van der Stille