Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Datum aus XML in DateTime umwandeln (https://www.delphipraxis.net/198465-datum-aus-xml-datetime-umwandeln.html)

franktron 5. Nov 2018 10:49

Datum aus XML in DateTime umwandeln
 
Das ist der Code für die Umwandlung es kommt aber immer NOW raus
Delphi-Quellcode:
FFormat:=TFormatSettings.Create('en-US');
  FFormat.DateSeparator:='.';
  FFormat.LongDateFormat:='dd.mmm.yyyy';
  ....
  FBestDatum:=StrToDateDef(Trim(Liste.Strings[1]),Now,FFormat);
Hier ist das Datum was ich als String bekomme 26.OCT.2018

Was mache ich da falsch.

SProske 5. Nov 2018 11:56

AW: Datum aus XML in DateTime umwandeln
 
StrToDate unterstützt keine (kurzen) Monatsnamen, nur Zahlen.
Workaround: Monatsnamen mit den passenden Zahlen ersetzen.

Außerdem benötigst du ShortDateFormat.

franktron 5. Nov 2018 12:57

AW: Datum aus XML in DateTime umwandeln
 
Jetzt kommt was ganz komisches

Wenn ich das hier mache (x ist Longint)
Delphi-Quellcode:
FFormat.ShortMonthNames[x]
dann kommt nur Blödsinn.
Wenn ich aber FFormat.ShortMonthNames[1] geht es, was ist das denn

DieDolly 5. Nov 2018 13:01

AW: Datum aus XML in DateTime umwandeln
 
Wieso ist X denn ein LongInt, obwohl es nur 12 Monate gibt?
ShortMonthNames geht von 1 bis 12. Da bringt dir ein LongInt nix.

Jasocul 5. Nov 2018 13:11

AW: Datum aus XML in DateTime umwandeln
 
Zitat:

Zitat von franktron (Beitrag 1417450)
Wenn ich das hier mache (x ist Longint)
Delphi-Quellcode:
FFormat.ShortMonthNames[x]
dann kommt nur Blödsinn.

Ist "x" evtl. gleich "0"?
Das Array geht von 1 bis 12 und nicht von 0 bis 11.

franktron 5. Nov 2018 13:13

AW: Datum aus XML in DateTime umwandeln
 
Delphi-Quellcode:
for x:=1 To 12 do
              Begin
                if UpperCase(FFormat.ShortMonthNames[x])=UpperCase(Liste.Strings[1]) then
                  Liste.Strings[1]:=FFormat.ShortMonthNames[x];
              End;
Hier der Gesamte Code

DieDolly 5. Nov 2018 13:14

AW: Datum aus XML in DateTime umwandeln
 
Zitat:

Zitat von Jasocul (Beitrag 1417456)
Ist "x" evtl. gleich "0"?
Das Array geht von 1 bis 12 und nicht von 0 bis 11.

Da wäre es hilfreich zu wissen, wie der Blödsinn denn aussieht
Zitat:

Zitat von franktron (Beitrag 1417450)
Wenn ich das hier mache (x ist Longint)
Delphi-Quellcode:
FFormat.ShortMonthNames[x]
dann kommt nur Blödsinn.
Wenn ich aber FFormat.ShortMonthNames[1] geht es, was ist das denn


franktron 5. Nov 2018 13:17

AW: Datum aus XML in DateTime umwandeln
 
Das ist ein Fehler im Debugger der Code läuft nur der Debugger zeigt mist


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 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