Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: DateTime String Format nicht bekannt

  Alt 17. Aug 2023, 13:39
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 'ddd mmm dd yyyy hh:mm:ss' gibst,
also 'ddd mmm dd yyyy' im FormatSettings als DateStr und 'hh:mm:ss' als TimeStr. (vorher ab 'GMT' alles entfernt)

Es wäre zu schön, wenn es ein eine Umkehrfunktion zum Delphi-Referenz durchsuchenFormatDateTime und Delphi-Referenz durchsuchenDateTimeToString gäbe.




PS:
Delphi-Quellcode:
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;
Also oben beim StrToDateTime mit dem FormatSettings aufpassen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (17. Aug 2023 um 14:09 Uhr)
  Mit Zitat antworten Zitat