![]() |
Problem mit strtodatetime
Hallo,
ich möchte folgenden String "14.11.07 05:51" in Datetime konvertiert (mit strtodatetime), leider funktionniert es nicht. Ich bekommme immer die Exception EConvertError... Kann mie jemand helfen ? Danke im Voraus. |
Re: Problem mit strtodatetime
StrToDateTime nutzt das Datums-/Zeitformat aus den Regionaleinstellungen von Windows. Wie sehen die denn bei dir aus?
|
Re: Problem mit strtodatetime
Hallo und danke,
die sehen so aus: TT.MM.JJJJ und HH:mm:ss . Ich mache im Deplhi viele TEXT-Dateien-Bearbeitung (laden in DB,usw...) Ich hätte gern eine möglichkeit dass es immmer funktionniert egal ob den String mit dem Datum so '14.11.2007 10:20:23' oder so '14.11.07 10:20' ist. Ich kann ja nicht jedes mal die Datums-/Zeitformat aus den Regionaleinstellungen von Windows ändern :-( Gibt es vielleicht eine andere Funktion wie strtodatetime ? |
Re: Problem mit strtodatetime
Es gibt auch eine überladene Version der Funktion, der du das Format als weiteren Parameter übergeben kannst.
|
Re: Problem mit strtodatetime
Wie mkinzler schon sagte gibt es eine überladene Version, siehe Delphi-Hilfe. Dieser kannst du TFormatSettings übergeben.
Du könntest also eine Variable vom Typ von TFormatSettings mit "TT.MM.JJJJ hh:nn:ss" anlegen und eine mit "TT.MM.JJ hh:nn:ss". Dann prüfst du mit der überladenen Version und der ersten Variablen ob du das umwandeln kannst, schlägt das fehl versuchst du es mit der Überladung und der zweiten Variablen. |
Re: Problem mit strtodatetime
Hallo,
wo soll da das Problem sein?
Delphi-Quellcode:
Funktioniert bei mir einwandfrei mit dem genannten Format.
ShowMessage(DateTimeToStr(StrToDateTime('15.11.07 12:00')));
Grüße vom marabu |
Re: Problem mit strtodatetime
Ja die kenne ich, ich habe es getestet, geht auch nicht:
FormatSettings: TFormatSettings; GetLocaleFormatSettings(LOCALE_USER_DEFAULT,Format Settings); FormatSettings.TwoDigitYearCenturyWindow:=1; FormatSettings.DateSeparator:='.'; FormatSettings.TimeSeparator:=':'; FormatSettings.ShortDateFormat:= 'hh:nn'; FormatSettings.LongDateFormat:= 'hh:nn:ss'; FormatSettings.ShortDateFormat:= 'dd.mm.yy'; FormatSettings.LongDateFormat:= 'dd.mm.yyyy'; strtodatetime(sdate, FormatSettings) |
Re: Problem mit strtodatetime
Sorry, wollte sagen:
FormatSettings.TwoDigitYearCenturyWindow:=1; FormatSettings.DateSeparator:='.'; FormatSettings.TimeSeparator:=':'; FormatSettings.ShortTimeFormat:= 'hh:nn'; FormatSettings.LongTimeFormat:= 'hh:nn:ss'; FormatSettings.ShortDateFormat:= 'dd.mm.yy'; FormatSettings.LongDateFormat:= 'dd.mm.yyyy'; |
Re: Problem mit strtodatetime
es funktionniert ! Danke an alle
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 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