![]() |
Gültige Strings für ShortDateFormat
Welche Strings kann man denn eigentlich der Eigenschaft "ShortDateFormat" von TFormat settings angeben.
Ich bin etwas verwirrt da ich hier im Web unterschiedliche Angaben finde und die OnlineHilfe auch nicht wirklich viel hergibt teilweise so etwas wie "T/M/J" "J/M/T" (also mit deutschen Abkürzungen) teilweise so etwas wie "YY/MM/DD" ...was ist denn jetzt richtig, und welche Kombinationen davon gibt es ? als Trennzeichen immer das "/" oder wird der gültige "DateSeparator" verwendet um in ShortDateformat zwischen den Werten zu trennen Außerdem wie unterscheidet man ein 2/4 Digit langes "Jahr"? So: "YYYY/MM/DD" ? Danke für Eure Antworten Martin |
AW: Gültige Strings für ShortDateFormat
Diese FormatStrings werden von
![]() Also alles was da steht, kannst du für die Format-Angaben benutzen. Wenn du alle möglichen Varianten haben möchtest, dann schreibe dir einen Algorithmus der Permutationen kann und lass den laufen. Um allerdings in annehmbarer Zeit das Ergebnis zu bekommen, solltest du dich auf einer Cray oder im amazon ECS einmieten und eine Menge Geld schon mal einplanen :mrgreen: Das ist übrigens auch ein gültiger FormatString ;)
Code:
"hallo "YYYY
|
AW: Gültige Strings für ShortDateFormat
Zitat:
Es ist nämlich so, dass Aufzählen von Kombinationen -wenn es lange dauert- richtig lange dauert. Weil es manchmal doch ne ganze Menge Kombinationen gibt. Also, angenommen, wir zählen alle Möglichkeiten auf, die Datumsformatbezeichner (so 40 Stück) hintereinander zu kleben. Dann sind das ... lass mich rechnen ... ähm.. verdammt viele, etwas mehr als es Atome gibt, oder etwas weniger, so genau kann ich das jetzt nicht sagen. In jedem Fall ist dann eine Cray oder Amazon's ECS auch keine große Hilfe mehr. Mir ist natürlich klar, das deine Erwähnung einer Cray oder Amazon's ECS nur bildlich gemeint war, aber für alle, die meinen, das man mit mehr Power auch solche Aufzählungen erschlagen kann, dem sei gesagt: Nö. |
AW: Gültige Strings für ShortDateFormat
Naja die Herren
also ganz so wild ist das ja wohl nicht wenn man "nur" einen (mittels Windows erzteugten) "String eines Datums"umwandeln möchte, oder? Zusammen mit Uhrzeit würde das natürlcih schon lustiger ;) und hier nochmal erneut die Frage: was sind die gültien Übergabestrings für ShortDateFormat (String). Vielleicht stelle ich mich einfach zu doof an, aber ich kann das nirgends erkennen ....und, eines habe ich schon mal gelernt: Schreibe nie nie nie einen Code der das Datum in einem String abhängig von den Windows eigenen FormatSettings abspeichert. LG Martin |
AW: Gültige Strings für ShortDateFormat
Ähm einen hatte ich doch schon genannt und möchtest du jetzt von uns eine Permutation über alle möglichen Format-Strings? Wenn du das Geld für den Speicher und die Rechenzeit zusammen hast, dann melde dich doch. Ich baue dir dann auch den Algorithmus dafür ...
noch ein komplettes Beispiel von der Emba Seite
Delphi-Quellcode:
Das wäre btw auch ein gültiger Format-String ... ja auch für ShortDate ... wohl nicht sinnvoll, aber gültig.
procedure TForm1.Button1Click(Sender: TObject);
var S : string; begin S := SysUtils.FormatDateTime( '"The meeting is on " dddd, mmmm d, yyyy, " at " hh:mm AM/PM', IncHour(Now(), 3)); Label1.Caption := S; end; Bau dir den zusammen, den du brauchst, oder erstelle dir eine Liste mit den Formaten die du brauchst. Bzgl. des Speichern von Datumswerten dafür gibt es z.B. die ![]() Es muss also bekannt sein, wie aus den gespeicherten Informationen wieder das wird, was es vorher bedeutet hat. Mit der ISO hat man da einen internationalen Standard. |
AW: Gültige Strings für ShortDateFormat
Hi MartinK,
vielleicht haben die anderen Jungs deine Frage anders verstanden als ich, der Hinweis auf die Funktion FormatDateTime ist glaube ich schon richtig: dort findest du - wie Sir Rufo auch schon betont hat - alle gültigen Formatierungskennzeichen für die Umwandlung eine Datum-/Zeit- oder DatumZeit-Wertes in einen String. So liefert dir FormatDateTime('ddddd', [DatumsVariable]) einen String zurück, der das Datum im Windows-Langformat widerspiegelt. Vorraussetzung für die Nutzung von FormatDateTime ist natürlich, das die DatumsVariable vom Typ TDate, TTime oder TDateTime ist. Wenn du allerdings das Datum bereits als String gespeichert hast (so verstehe ich zumindest deinen Satz "....und, eines habe ich schon mal gelernt: Schreibe nie nie nie einen Code der das Datum in einem String abhängig von den Windows eigenen FormatSettings abspeichert. "), hast du ein anderes Problem. Dann hilft nur manuelles umparsen oder das Umwandeln des Strings ( ![]() |
AW: Gültige Strings für ShortDateFormat
@kretabiker
Die Funktion ![]() Wenn überhaupt hätte man eine bessere Chance mit ![]() Ich vermute jetzt mal, was der TE möchte: In den FormatSettings das ShortDateFormat mit unterschiedlichen Werten füllen um dann für jeden Wert mit StrToDate ein Datum zu ermitteln bis ein vernünftiges Ergebnis kommt. Wie ich aber oben ausgeführt habe, kann man sich das sowas von schenken. Ein Blick in den Source-Code von StrToDate und VarToDate zeigt einem auch schön die Sinnlosigkeit dieser Vorgehensweise. |
AW: Gültige Strings für ShortDateFormat
@Sir Rufo: Mit der Eingeschränktheit von StrToDate hast du recht, zumindest mit ShortDate-Formaten sollte es klappen, aber das selbst die Formatsettings so gut wie nicht berücksichtigt werden, wußte ich nicht - zu selten komme ich in die Verlegenheit, einen Datums-String in einen internen Datums-Wert zu konvertieren.
Schlussendlich kann nur der TE prüfen, ob die Funktion StrToDate, VarToDate oder vielleicht etwas ganz anderes seinen Anforderungen entspricht, denn wie du schon richtig sagst, vermuten wir nur, was er eigentlich genau vor hat - vor allem, in welchem Format und in welcher Form das Ausgangsdatum vorliegt. |
AW: Gültige Strings für ShortDateFormat
Zitat:
Zitat:
Meint er die Unterscheidung 1920 und 2020 ? Unter Umständen hilft auch ein Blick in die ![]() Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 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