![]() |
Delphi-Version: 7
Fehlermeldung: 1.1.2013 ist kein gültiges Datum
Hallo,
habe bei mir in einem Projekt folgenden Code:
Delphi-Quellcode:
in dieser Zeile tritt bei einem Anwender (und nur bei dem) der Fehler auf:
var Temp: TDateTime;
... begin ... Temp := EncodeDate(Jahr,Monat,Tag); ... EConvertError: '01.01.2013' ist kein gültiges Datum OS ist WIn7 x64. Das Programm läuft aber (seit Jahren) auf anderen WIn7 x64 ohne Probleme. Auf anderen Rechnern (auch mit Win7) des Anwenders läuft die Software auch ohne Probleme. Ich habe jetzt aktuell keinerlei Idee was denn eigentlich das Problem ist. Erst dachte ich an die Systemeinstellungen, aber EncodeDate verwendet doch diese Einstellungen. Hat jemand von Euch ne Idee? Grüße |
AW: Fehlermeldung: 1.1.2013 ist kein gültiges Datum
ist ein beliebtes Windows 7 Problem, wenn es vorinstalliert ist.
Das steht intern irgendwie auf Englisch wenn man aber unter Regions und Spracheinstellungen schaut, sieht man da oft das es auf Deutsch eingestellt ist :twisted: Lösung: einmal auf Englisch stellen Übernehmen und schließen und dann wieder auf Deutsch stellen und schon geht es :thumb: |
AW: Fehlermeldung: 1.1.2013 ist kein gültiges Datum
Zitat:
Mavarik |
AW: Fehlermeldung: 1.1.2013 ist kein gültiges Datum
Nö sicher nicht, die Formatsetting sollte man i.d.R. nicht umschalten.
Das obige Problem ist ein beliebter WIN7 Bug aus der Systembuilderversion, welches man auf dem und auf dem zweiten Blick nicht versteht! Erst wenn man sich die Formatierungssetting anschaut, kommt man dem Problem näher, warum der 1.1.2013 kein Datum ist! Ich habe das so gelöst, das ich den beliebten Befehl aus der Sysutil StrtoDate umgeschrieben habe, so das er immer geht und keine dummen Konvertierungsfehlermeldungen mehr bringt :thumb: Das gilt auch für andere dummen Meldungen zum Thema Konvertierung und welcher Depp hat die überhaupt programmiert bei Borland (das kommt noch aus dieser Zeit) :!: |
AW: Fehlermeldung: 1.1.2013 ist kein gültiges Datum
Man könnte aber stattdessen auch die überladene Version verwenden, bei der man die FormatSettings angeben kann.
|
AW: Fehlermeldung: 1.1.2013 ist kein gültiges Datum
Zitat:
Nachtrag: Der Tipp mit den Ländereinstellungen umstellen hat funktioniert. Danke! |
AW: Fehlermeldung: 1.1.2013 ist kein gültiges Datum
Vielleicht helfen dir diese Methoden weiter:
Delphi-Quellcode:
GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, formatSettings);
TryEncodeDate(Jahr,Monat,Tag); |
AW: Fehlermeldung: 1.1.2013 ist kein gültiges Datum
Zitat:
Das Datumsformat ist innerhalb von Windows inkonsistent gespeichert. Daher bekommen nicht nur Delphi-Programme sondern auch Programme aus anderen Compilern Schwierigkeiten. Die richtige Abhilfe ist daher das ursprüngliche Problem zu beheben. Sinnvoll wäre es beim Programmstart das Datumsformat auf unterschiedliche Weise abzufragen und bei einem Unterschied Alarm zu schlagen. Leider ist es so, dass sobald man den Trick mit dem Umstellen auf Englisch und wieder zurück vorgenommen hat, man den fehlerhaften Zustand nicht mehr reproduzieren kann. Daher ist es etwas schwierig dem Problem auf den Grund zu gehen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:51 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