Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Probleme mit FormatSettings.ShortDateFormat (https://www.delphipraxis.net/169768-probleme-mit-formatsettings-shortdateformat.html)

MetalChris 10. Aug 2012 10:43

Delphi-Version: XE2

Probleme mit FormatSettings.ShortDateFormat
 
Wir stellen zurzeit auf Delphi XE2(Update4) um, dabei ist uns afgefallen, dass bei ShortDateFormat das falsche Format zurückgegeben wird. Bei den älteren Delpiversionen wird der Wert korrekt zurückgegeben.

Code:
TestLabel.Text := FormatSettings.ShortDateFormat;

Rückgabewert:
Bei Delphi 7 und 2009 -> 'dd.mm.yyyy'
Bei Delohi XE2 -> 'dd/mm/yyyy'

Bernhard Geyer 10. Aug 2012 10:46

AW: Probleme mit FormatSettings.ShortDateFormat
 
Vermutlich dieser Windows-Fehler

pmoegenb 10. Aug 2012 10:53

AW: Probleme mit FormatSettings.ShortDateFormat
 
Dann stell's mal so richtig:

Delphi-Quellcode:
FormatSettings.ShortDateFormat := 'dd.mm.yyyy';

MetalChris 10. Aug 2012 11:01

AW: Probleme mit FormatSettings.ShortDateFormat
 
Also an Windows kann es nicht liegen, da Delphi 2009 es auf dem Testrechner richtig ausgegeben hat. Nur wenn ich das Projekt mit XE2 compiliere, dann gibt er es falsch zurück. Muss also an XE2 liegen.

Iwo Asnet 10. Aug 2012 11:18

AW: Probleme mit FormatSettings.ShortDateFormat
 
Ich habe mich auch gewundert und einmalig in den Windows-Einstellungen das Datumsformat hin- und wieedr zurück verändert. Nu is Ruh.

MetalChris 10. Aug 2012 11:36

AW: Probleme mit FormatSettings.ShortDateFormat
 
Das hab ich auch schon versucht, hab es erst auf en.US gestellt und dann wieder auf de.deu.
Ich hab es sogar schon mit resetten auf die Originalwerte der erweiterten Datumseinstellungen versucht, aber er gibt immer noch das falsche Format zurück.

MetalChris 13. Aug 2012 09:50

AW: Probleme mit FormatSettings.ShortDateFormat
 
Gibt es noch eine andere Funktion mit der man direkt die Datumsformate auslesen kann.

Iwo Asnet 13. Aug 2012 10:08

AW: Probleme mit FormatSettings.ShortDateFormat
 
Zufällig habe ich mir gerade die Funktionen für das Auslesen der Sprachinformation angeschaut.
Saug die JCL und schau dir die JclLocale.pas an. Dort solltest Du alles finden, was Du benötigst.

Also:
1. Current LCID auslesen
2. LocaleInfo der LCID instantiieren
3. Freuen, weil alles dort steht (hoffentlich ;-) )

Das einzige kleine Problem was ich damit habe ist, das Sprachen und Länder unter einen Hut gesteckt werden und genau genommen stimmt das ja nicht.

MetalChris 13. Aug 2012 11:18

AW: Probleme mit FormatSettings.ShortDateFormat
 
Komisch ist nur, dass er den FormatSettings.DateSeperator richtig setzt (.)
Nur wenn man sich das ShortDateFormat ausliest bekommt man das falsche Ergebnis (dd/mm/yyyy).
Man kann sich zwar die / mit der StringReplace funktion durch den Delimiter ersetzten, aber das sollte Delphi eigentlich wie bei allen vorherigen Versionen auch selbst in dem dd.mm.yyyy format ausgeben.

Ralle1 12. Sep 2012 13:04

AW: Probleme mit FormatSettings.ShortDateFormat
 
Ich stelle exkat das gleiche Problem auch bei mir im Zuge einer Umstellung von Delphi2007 nch XE2 fest.

2007 -> ShortDateFormat='dd.mm.yyyy' und DateSeparator='.'
XE2 -> ShortDateFormat='dd/mm/yyyy' und DateSeparator='.'

MetalChris, wie hast du das Problem letztlich gelöst, durch StringReplace?
Ist es ein Delphi Bug oder wie zu erklären? Gibt es elegantere Lösungen?

Vielen Dank

MetalChris 29. Okt 2012 10:05

AW: Probleme mit FormatSettings.ShortDateFormat
 
Ich habe mir einfache eine Funktion geschrieben, die ich beim Programmstart aufrufe. Diese ersetzt dann das / mit dem im System festgelegten DateSeperator.

Delphi-Quellcode:

FormatSettings.ShortDateFormat := StringReplace(FormatSettings.ShortDateFormat, '/', FormatSettings.DateSeparator);
FormatSettings.LongDateFormat := StringReplace(FormatSettings.LongDateFormat, '/', FormatSettings.DateSeparator);
Dadurch hat man dann immer das richtige Format.


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