Einzelnen Beitrag anzeigen

Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#1

über TJsonTextWriter erzeugten Datetime-Wert korrekt einlesen

  Alt 24. Mai 2024, 22:37
Hallo zusammen,

ich schreibe in eine Json-Datei einen TDatetime-Wert.
Delphi-Quellcode:
VAR
  Writer: TJsonTextWriter;
  StringWriter: TStringWriter;
BEGIN
  StringWriter := TStringWriter.Create( );
  Writer := TJsonTextWriter.Create( StringWriter );

  Writer.Formatting := TJsonFormatting.Indented;

  Writer.WriteEndObject;

  Writer.WritePropertyName( 'TimestampFromLastFile' );
  Writer.WriteValue( g_JsonSettingsParams.DatetimeFromLastReadFile.Now() );
  Writer.WriteEndObject;
...
END;
Damit habe ich in der Json-Datei folgenden Wert:
Code:
"2024-05-24T22:13:20.013+02:00"
Dann lese ich den Wert auch wieder aus.
Delphi-Quellcode:
VAR
  my_jsonObj: TJSONObject;
  lDateTime_tmp: TDatetime;
BEGIN
  IF FileExists( frm_ReadPDFFieldsInTable.gs_PathAndFileNameFromSettingJson ) THEN
  BEGIN
    my_jsonObj := TJSONObject.ParseJSONValue( TFile.ReadAllText( ExtractFilePath( ParamStr( 0 ) ) + 'Settings.json', TEncoding.UTF8 { * } ) ) AS TJSONObject;
...
    IF my_jsonObj.TryGetValue<TDateTime>( 'Settings.TimestampFromLastFile', lDateTime_tmp ) THEN
        g_JsonSettingsParams.DatetimeFromLastReadFile := lDateTime_tmp;
...
  END;
END;
...
Wenn ich folgendes verwende, fehlen 2 h.
Memo1.Lines.Add( DateTimeToStr( uReadAndBuildJson.g_JsonSettingsParams.DatetimeFromLastReadFile, TFormatSettings.Invariant ) ); Ergibt den Wert:
Code:
05/24/2024 20:13:20
Wie bekomme ich diesen Wert korrekt ausgelesen?

Vielen Dank schon mal vorab.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)

Geändert von juergen (24. Mai 2024 um 22:39 Uhr)
  Mit Zitat antworten Zitat