TDateOrder und GetDateOrder aus System.SysUtils nutzen
Ich bin grad irgendwie unfähig. Ich bekomme von einem Webservice ein Datum im Format 'YYYY-MM-DD' das läßt sich unter Windows problemlos mit Variants.VarToDateTime ins korrekte
Delphi-Quellcode:
konvertieren. Sobald ich zu Mac OS wechsle, klappt das nicht mehr, weil in den Tiefen der SysUtils einiges nicht so implementiert ist, wie ich es erwarten würde. Unter Windows übernimmt offenkundig eine Betriebssystemfunktion die erfolgreiche Konvertierung. In anderen Systemen hat man diesen Komfort nicht und muß sich auf Embarcadero verlassen :D Man landet dann über kurz oder lang in der Funktion SysUtils.ScanDate, die leider, leider die FormatSettings des Systems beim Umwandlungsversuch zu Rate zieht. Da findet sie dann in meinem deutschen System als Resultat von GetDateOrder ein doDMY an Stelle des nötigen doYMD und die Sache ist gelaufen, weil dann der String falsch ausgewertet wird. Nun dachte ich mir, ich könnte für den nicht Windows Fall das Datum selbst für die Umwandlung aufhübschen und wollte diese neckischen DateOrder Geschichten nutzen...aber das geht gar nicht. System.SysUtils ist im uses und dennoch kennt Herr Delphi weder TDateOrder noch GetDateOrder. Was mache ich falsch? Oder hat grad jemand eine bessere Datumskonvertierung (Plattformunabhängig!!) parat?
TDate
Grüßle, Sherlock |
AW: TDateOrder und GetDateOrder aus System.SysUtils nutzen
|
AW: TDateOrder und GetDateOrder aus System.SysUtils nutzen
Zitat:
Was funktioniert denn bei StrToDate bzw. StrToDateTime nicht? |
AW: TDateOrder und GetDateOrder aus System.SysUtils nutzen
Zitat:
Zitat:
Zitat:
:( Aber unser Supermodell hat die Lösung: ISO8601ToDate funktioniert auf Windows und Mac erwartungskonform. :thumb: Sherlock |
AW: TDateOrder und GetDateOrder aus System.SysUtils nutzen
Zitat:
Delphi-Quellcode:
procedure Main;
var dt: TDateTime; fmt: TFormatSettings; begin fmt := TFormatSettings.Create; fmt.ShortDateFormat := 'YYYY-MM-DD'; fmt.DateSeparator := '-'; dt := StrToDate('1992-02-29', fmt); Writeln(DateToStr(dt)); end; |
AW: TDateOrder und GetDateOrder aus System.SysUtils nutzen
Ich geh jetzt mal in die Ecke und mach eine Stunde: :wall:
Ich finde dennoch die ISO8610-Lösung charmant, da das Datum definitiv immer in dem Format von der Debian-Python-Lösung geschickt wird. Sherlock |
AW: TDateOrder und GetDateOrder aus System.SysUtils nutzen
Zitat:
|
AW: TDateOrder und GetDateOrder aus System.SysUtils nutzen
Ich habe mir dafür einen record helper geschrieben, das geht auch ganz gut. Einziger Nachteil: der record helper aus SysUtils wird dadurch ungültig, Dinge wie AsString funktionieren also nicht mehr.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz