Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
Delphi 11 Alexandria
|
über TJsonTextWriter erzeugten Datetime-Wert korrekt einlesen
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:
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)
|