![]() |
Date Format?
Hallo,
ich habe einen String, den ich ins TDate Format konvertiere (StrToDate). Format ist tt.mm.jjjj. Bei mir klappt es, andere User bekommen aber die Fehlermeldung "Invalid Date". Ich kann das leider nicht reproduzieren, weiß also nicht, was das ist. Ich habe das Format tt/mm/jjj und tt-mm-jjjj getestet, funktioniert bei mir nicht. Gruß, Andreas |
Re: Date Format?
Was heißt funktioniert nicht? Wie liegt auf den anderen Rechnern das Datum vor?
|
Re: Date Format?
verwende eine Absicherung mit Try Except oder direkt die Funktion TryStrToDate
Delphi-Quellcode:
begin
if TryStrToDate(Datum.Text, Datum) then mache_etwas_mit_dem_Datum(Datum) else ShowMessage(Format('"%s" Sie haben kein gültiges Datum angegeben', [Datum.Text])); end; |
Re: Date Format?
Funktioniert nicht heißt, es kommt der "Invalid Date"Error.
Ich versuch es mal mit TryStrToDate. Aber was mach ich, wenn es nicht geht? Bei mir klappt ja alles, bei anderen nicht. Gruß, Andreas |
Re: Date Format?
StrToDate ist von der Ländereinstellung abhängig. Wenn das Datums-Format aber fix "tt.mm.jjjj" ist, dann wird die Umwandlung nicht funktionieren, wenn die Ländereinstellung beim User anders ist. Also muss das Datumsformat an die Ländereinstellung angepasst werden, oder man muss sich seine eigene StrToDate schreiben.
|
Re: Date Format?
Geht das irgendwie automatisch?
Ich programmier ne art WrestlingSim. Bekannt in dem Bereich, ist schon das Spiel EWR. Das setzt allerdings englische Spracheinstellungen vorraus. |
Re: Date Format?
Schau dir mal das an:
Delphi-Quellcode:
Damit kannst du sagen wie das Datum, Zeit auszusehen hat bei jedem Aufruf von DateToStr..
TFormatSettings = record
CurrencyFormat: Byte; NegCurrFormat: Byte; ThousandSeparator: Char; DecimalSeparator: Char; CurrencyDecimals: Byte; DateSeparator: Char; TimeSeparator: Char; ListSeparator: Char; CurrencyString: string; ShortDateFormat: string; LongDateFormat: string; TimeAMString: string; TimePMString: string; ShortTimeFormat: string; LongTimeFormat: string; ShortMonthNames: :TFormatSettings.:1; LongMonthNames: :TFormatSettings.:2; ShortDayNames: :TFormatSettings.:3; LongDayNames: :TFormatSettings.:4; TwoDigitYearCenturyWindow: Word; ODer du setzt die Sachen beim Programmstart für alle Ding fest:
Delphi-Quellcode:
if not sametext(ShortDateFormat, 'dd.MM.yyyy') then
begin ShortDateFormat := 'dd.MM.yyyy'; LongDateFormat := 'dddd, d. MMMM yyyy'; DateSeparator := '.'; ShortTimeFormat := 'hh:mm'; LongTimeFormat := 'hh:mm:ss'; TimeSeparator := ':'; TimeAMString := ''; TimePMString := ''; end; |
Re: Date Format?
Hallo,
ich habe das in das onCreate der Hauptform gesetzt. Allerdings ist mein Datum jetzt immer 30.12.1899? Gruß, Andreas |
Re: Date Format?
Ok, war mein Fehler. Hatte die falsche Variable genommen, nu gehts. Danke :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 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