![]() |
DateTime String Format nicht bekannt
Hallo zusammen,
über eine Schnittstelle bekomme ich neuerdings Daten, deren Format ich noch nie gesehen hatte: "Mon Jun 26 2023 07:20:48 GMT+0000 (Coordinated Universal Time)" Kennt das jemand von Euch? Wenn ja, parst ihr das dann selber oder gibt es in Delphi platformunabhängige Versionen zum Umwandeln in TDateTime? Diese Daten sollen in eine MariaDB als DateTime oder Timestamp gespeichert werden. Danke im Voraus ! Tom |
AW: DateTime String Format nicht bekannt
Schaut nach US-Format aus mit Monat = Text und dafür das / als Erkennungsmerkmal weg gelassen.
|
AW: DateTime String Format nicht bekannt
Danke.
Das werde ich mal so versuchen. |
AW: DateTime String Format nicht bekannt
Also für eine Schnittstelle ist das ja eher ein ungünstiges Format.
Sicher, dass die, wo das her komm, nicht 'nen Bug haben oder irgendwelche (hoffentlich vorübergehenden) Mist bauen? Emba hat ja letztens an den Datums-Funktionen was repariert ... eventuell klappt es, wenn du dem StrToDateTime das
Delphi-Quellcode:
gibst,
'ddd mmm dd yyyy hh:mm:ss'
also
Delphi-Quellcode:
im FormatSettings als DateStr und
'ddd mmm dd yyyy'
Delphi-Quellcode:
als TimeStr. (vorher ab 'GMT' alles entfernt)
'hh:mm:ss'
Es wäre zu schön, wenn es ein eine Umkehrfunktion zum ![]() ![]() PS:
Delphi-Quellcode:
Also oben beim StrToDateTime mit dem FormatSettings aufpassen.
procedure TForm25.FormCreate(Sender: TObject);
type TDayNames = array[1..7] of string; TMonNames = array[1..12] of string; const DayNames: TDayNames = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'); MonNames: TMonNames = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); begin Caption := FormatDateTime('DDD MMM DD YYYY HH:MM:SS "GMT+0000 (Coordinated Universal Time)"', Now); // Warum hat Invarant im englischen Format die deutschen Namen? Caption := FormatDateTime('DDD MMM DD YYYY HH:MM:SS "GMT+0000 (Coordinated Universal Time)"', Now, TFormatSettings.Invariant); var FS := TFormatSettings.Invariant; TDayNames(FS.ShortDayNames) := DayNames; TMonNames(FS.ShortMonthNames) := MonNames; Caption := FormatDateTime('DDD MMM DD YYYY HH:MM:SS "GMT+0000 (Coordinated Universal Time)"', Now, FS); end; |
AW: DateTime String Format nicht bekannt
Mit diesen FormatSettings sollte es mit TryStrToDateTime gehen. Allerdings bleibt die Zeitzone dabei unberücksichtigt und müsste von Hand ausgewertet werden.
Delphi-Quellcode:
var fmt := TFormatSettings.Invariant;
fmt.ShortDateFormat := 'ddd mmm dd yyyy'; fmt.ShortDayNames[1] := 'Sun'; fmt.ShortDayNames[2] := 'Mon'; fmt.ShortDayNames[3] := 'Tue'; fmt.ShortDayNames[4] := 'Wed'; fmt.ShortDayNames[5] := 'Thu'; fmt.ShortDayNames[6] := 'Fri'; fmt.ShortDayNames[7] := 'Sat'; fmt.ShortMonthNames[1] := 'Jan'; fmt.ShortMonthNames[2] := 'Feb'; fmt.ShortMonthNames[3] := 'Mar'; fmt.ShortMonthNames[4] := 'Apr'; fmt.ShortMonthNames[5] := 'May'; fmt.ShortMonthNames[6] := 'Jun'; fmt.ShortMonthNames[7] := 'Jul'; fmt.ShortMonthNames[8] := 'Aug'; fmt.ShortMonthNames[9] := 'Sep'; fmt.ShortMonthNames[10] := 'Oct'; fmt.ShortMonthNames[11] := 'Nov'; fmt.ShortMonthNames[12] := 'Dec'; |
AW: DateTime String Format nicht bekannt
Zitat:
Delphi-Quellcode:
Bis bald...
uses
mormot.core.base, mormot.core.datetime; const DATE_TIME = 'Mon Jun 26 2023 07:20:48 GMT+0000 (Coordinated Universal Time)'; begin var dt: TDateTime; if HttpDateToDateTime(DATE_TIME, dt) then ShowMessage(DateTimeToStr(dt)); Thomas |
AW: DateTime String Format nicht bekannt
Zitat:
Das ist wirklich ein echtes Datenaustauschformat? Wer hat sich denn sowas Grauenhaftes ausgedacht und warum? ![]() ![]() ... |
AW: DateTime String Format nicht bekannt
Delphi-Quellcode:
aus System.DateUtils leistet das übrigens auch.
HttpToDate
|
AW: DateTime String Format nicht bekannt
Zitat:
![]() Bis bald... Thomas |
AW: DateTime String Format nicht bekannt
Super ! Danke für all eure Antworten!
War heute noch mit etwas Anderem beschäftigt, deshalb werde ich es erst heute Nachmittag probieren können. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz