Barvna shema: Svetla
Trenutno dejavna stran: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Office JSON » troubleshooting » Datum, prebran iz JSON, je zamaknjen za nekaj ur

Datum, prebran iz JSON, je zamaknjen za nekaj ur

Časovni žig, kot je "2026-09-25T12:30:00Z", se v VBA prebere kot 14:30, ali pa je datum, zapisan v JSON, v drugem sistemu prikazan zamaknjeno.

Okolje

Vse različice WKL Office JSON.

Vzrok

  • Branje: čas s časovnim pasom (Z za UTC, +02:00) se pretvori glede na JDoc.DateZone. Privzeta vrednost jdzLocal pretvarja v lokalni čas sistema Windows, zato med srednjeevropskim poletnim časom 12:30Z postane 14:30. To je pravilno, kadar vrednost primerjate z Now(), ne pa, kadar podatkovna zbirka hrani čas UTC.
  • Pisanje: vrednost VBA Date nima časovnega pasu in se zapiše brez njega. Prejemni sistem, ki predpostavlja UTC, lokalni čas prebere kot UTC.

Rešitev

  1. Za podatkovne zbirke, ki hranijo čas UTC, pred branjem nastavite doc.DateZone = jdzUtc.
  2. Če želite čase ohraniti takšne, kot so zapisani, nastavite doc.DateZone = jdzAsWritten.
  3. Pred zapisom v sistem, ki pričakuje UTC, lokalni čas v VBA pretvorite v UTC in časovni pas nizu dodajte sami, na primer doc.SetValue "$.at", Format(utcTime, "yyyy-mm-dd\Thh:nn:ss") & "Z".

Glejte Branje in pisanje datumov in časov.

sl/wiki/msaccess/json/troubleshooting/date-shifted.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille