![]() |
Windows 7: bei manchen Systemen falsches Datumsformat?
Hallo zusammen,
ich bin gerade bei der Suche über diesen ![]() Irgendwie habe ich die Vermutung, dass da bei einigen Windows 7-Systemen was nicht ganz sauber läuft. Wir supporten hier auf der Arbeit einen von einem Dienstleister produzierten USB-Stick. Ich vermute, dass dort auch Delphi eingesetzt wird, denn ein kleines Testtool zur Ermittlung des Datumsformats trägt das Delphi-Icon :-) Die Software auf dem Stick arbeitet mit einer Kopierschutzroutine, welche das Systemdatum ermittelt und bei überschreiten eines bestimmten Datums die Lizenz ungültig macht und den Content auf dem Stick löscht. Diese Löschroutine hatte nun auf mehreren Windows7-Rechnern unserer Mitarbeiter zugeschlagen. Bei Kontrolle mit einem Testtool hatte sich dann herausgestellt, das trotz korrekter Ländereinstellungen ("Deutsch(Deutschland)") das falsche Datumsformat (nämlich mm/dd/yyyy) verwendet wurde. Erst nach Änderung auf ein anderes Land und erneutes ändern auf "Deutsch (Deutschland)" wurde das Datumsformat von der Delphi-Testapplikation (und von dem Kopierschutz) korrekt ermittelt. Ich vermute ganz stark, dass hier bei einigen Windows 7 Konstellationen der Wurm drin ist. Hat das außer mir schon jemand irgendwo erlebt? Es wäre auch schön, wenn jemand Zugriff zu 0815-Windows 7-Komplett-PCs (aus Saturn, MM etc.) hat, und dort einfach mal eine kleine Testanwendung ausführen könnte, die einfach das Ergebnis von DateToStr ausgibt, nur um zu schauen, ob der Fehler dort auch auftritt. Viele Grüße ein derzeit ratloser Patrick |
Re: Windows 7: bei manchen Systemen falsches Datumsformat?
Im Forum von Codegear waren schon mal darüber einige Diskussionen über dieses Problem.
Schau mal dort ob dabei was rausgekommen ist. |
Re: Windows 7: bei manchen Systemen falsches Datumsformat?
Hi Bernhard,
danke für den Hinweis, werde mal dort schauen... |
Re: Windows 7: bei manchen Systemen falsches Datumsformat?
Was nimmt man auch solche veränderlichen Formate für eine "genau" Auswertung?
Lösung: Man nutze einfach keinen formatierten String (weder Datum noch Sonstwas) für derartige Prüfungen. (oder man gibt das Format selber vor, aber das ist doch umständlicher, als direkt mit TDateTime oder einem anderem gleichwertigem Datumsformat zu prüfen) Was macht man denn, wenn jemand das Programm auf einem anderssprachigem System einsetzen will oder wenn jemand zwar ein deutsches Windows besitzt, aber seine eigene/persönliche Einstellung bei sowas nutzt? |
Re: Windows 7: bei manchen Systemen falsches Datumsformat?
Zitat:
Aber egal, was ich in diesem Betrieb sage, es interessiert eh keinen von der Führungsebene :wall: |
Re: Windows 7: bei manchen Systemen falsches Datumsformat?
Zitat:
;) Sherlock |
Re: Windows 7: bei manchen Systemen falsches Datumsformat?
Zitat:
Zurück zum Problem: Es scheint so, als würde das Problem Systeme betreffen, bei denen Windows 7 in der US-Sprach-Version installiert wurde und dann das deutsche Language Pack darüber installiert wurde... hmmm. Bei Codegear finde ich auf die Schnelle diesen ![]() |
Re: Windows 7: bei manchen Systemen falsches Datumsformat?
Language Pack <> Deutsches Datumsformat.
Software, die nicht korrekt das Datum ausliest ist fehlerhaft, sofern nicht in der Anleitung oder sonstwo steht, daß das Datum auf eine bestimmte Art zu formatieren ist. Das soltle doch ganz leicht zu verklickern sein. Zumal man den Fehler auf jemand anderen abwälzen kann, sowas lieben BWLer aka Entscheidungsträger. Verkauf das alles als Bug in der Fremdsoftware und alle sind glücklich, da es Null-Aufwand (=Null-Kosten) für Deine Firma bedeuetet. Sherlock |
Re: Windows 7: bei manchen Systemen falsches Datumsformat?
Also wir kennen das Problem. Trat bis jetzt nur bei Windows 7 64bit auf. Trotz deutscher Ländereinstellung werden die globalen Variablen zur Datums-Formatierung in Delphi mit den englischen Variante belegt. Zumindest bei unserem Delphi 6. Wer jetzt nun der Schuldige ist (das alte Delphi 6 oder Windows 7), das herauszufinden hatte wir jetzt keine Lust. Man setzt nach Programmstart einfach die Variablen noch mal von Hand:
Delphi-Quellcode:
Und schon klappt das ganze.
CurrencyFormat := 3;
NegCurrFormat := 8; ThousandSeparator := '.'; DecimalSeparator := ','; CurrencyDecimals := 2; DateSeparator := '.'; ShortDateFormat := 'dd.MM.yyyy'; LongDateFormat := 'dddd, d. MMMM yyyy'; TimeSeparator := ':'; TimeAMString := ''; TimePMString := ''; ShortTimeFormat := 'hh:mm'; LongTimeFormat := 'hh:mm:ss'; Ebenso sollte man bei FOrmatanweisunge auf %m und ähnliches verzichten. Bei %m wird einem z.B. das Dollar-Zeichen anstatt des Euro untergejubelt. //Edit um das ganze zu verhindern sollte man DateToStr sowieso nicht verwenden, sonst lieber auf FormatDateTime setzen und alles selbst machen. Sven |
Re: Windows 7: bei manchen Systemen falsches Datumsformat?
Hi,
hatte das Problem auch, aber in anderer Art und Weise. Windows 7/64 Ultimate US + deutsches Language Pack, trozdem war die Anzeige von Uhrzeit und Datum immer noch US. In diesem Fall muss jeder Benutzer für sich die Einstellungen für Datum, Uhrzeit oder das Zahlenformat ändern. Viele Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11: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 by Thomas Breitkreuz