Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.037 Beiträge
 
Delphi 12 Athens
 
#17

AW: TJSON.JSONToObject DateTime als LocalTime

  Alt 1. Nov 2023, 10:43
Was mich wirklich wundert: Dieses Problem müsste ja eigenltich jeder haben, der die TJSON.ObjectToJSONString bzw. TJSON.JSONToObject nutzt und irgendwelche Zeitdaten überträgt.
Die Methoden verhalten sich bei korrekter Anwendung auch richtig.
Delphi-Quellcode:
type
  TMyObject = class
  public
    FDt: TDateTime;
  end;

procedure Test();
begin
  var dt := EncodeDateTime(2023, 11, 1, 10, 52, 0, 0);
  var obj := TMyObject.Create;
  try
    obj.FDt := dt;
    var json := TJson.ObjectToJsonObject(obj, [joDateFormatISO8601]);
    Writeln(json.ToJSON);
    obj.FDt := 0;
    TJson.JsonToObject(obj, json, [joDateFormatISO8601]);
    if SameDate(obj.FDt, dt) then
      Writeln('OK')
    else
      Writeln('Fail');
  finally
    obj.Free;
  end;
end;
Ergibt
Zitat:
{"dt":"2023-11-01T10:52:00.000+01:00"}
OK
Kannst du mal ein konkretes Beispiel zeigen, mit dem das Problem reproduzierbar ist?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat