Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi FormatDateTime liefert englische Wochentage (https://www.delphipraxis.net/147561-formatdatetime-liefert-englische-wochentage.html)

Hepdepaddel 11. Feb 2010 12:39


FormatDateTime liefert englische Wochentage
 
Moin Moin,

auf einigen (wenigen) Kundenrechnern liefert FormatDateTime englische Werte.

FormatDateTime('ddd, dd.mm.yy', MeinDatum)

ergibt dann

Thu, 11.02.10

statt

Die, 11.02.10

Die Kunden versichern, ein deutsches Windows zu nutzen. Soweit ich Screenshots von den Kundenrechnern geprüft habe, ist unter "Region & Sprache" auf der Registerkarte "Formate" auch tatsächlich Deutsch eingestellt.

Hat jemand eine Idee, woher die englischen Wochentagsnamen kommen könnten?

Gruß

Hepdepaddel

Luckie 11. Feb 2010 12:41

Re: FormatDateTime liefert englische Wochentage
 
Und was ist beim langen Datumsformat eingetragen?

Tyrael Y. 11. Feb 2010 12:53

Re: FormatDateTime liefert englische Wochentage
 
Wenn ich mich nicht ganz irre sind die ResourceStrings dafür in SysConst.pas eingetragen.
Diese werden von dort in einen festen Array geschrieben und dann im Programmablauf genutzt.

Dies soll bedeuten, hast du keine Lokalisierung deines Programms mit dementsprechenden Tools
vorgenommen, werden diese Strings genau in der Sprache beim Kunden auftauchen, in der Sie von
deinem Delphi kompiliert worden sind.

Dies gilt auch für alle Delphi-Fehlermeldungen.

DeddyH 11. Feb 2010 12:55

Re: FormatDateTime liefert englische Wochentage
 
Delphi-Referenz durchsuchenSysUtils.FormatDateTime
Zitat:

The first form of FormatDateTime is not thread-safe, because it uses localization information contained in global variables. The second form of FormatDateTime, which is thread-safe, refers to localization information contained in the FormatSettings parameter. Before calling the thread-safe form of FormatDateTime, you must populate FormatSettings with localization information. To populate FormatSettings with a set of default locale values, call GetLocaleFormatSettings.

Luckie 11. Feb 2010 12:56

Re: FormatDateTime liefert englische Wochentage
 
Oder kurz: In welcher Sprache ist dein Delphi mit dem das Programm erstellt wurde. Allerdings glaube ich nicht, dass es daran liegt, denn genau das sollen ja die Format-Funktionen vermeiden und Datum/Zeit gemäß der Systemeinstellungen formatieren.

himitsu 11. Feb 2010 13:00

Re: FormatDateTime liefert englische Wochentage
 
Doch liegt es, dann Delphi bringt seine eigenen Wochentagstrings mit ... schau mal in die SysConst.pas

Willst du die sprachabhängigen Strings von Windows, so wirst du diese selber auslesen müssen.
Wenn du diese dann in SysUtils.DefLongDayNames einträgst, dann kannst du weiterhin die Delphi-Funktionen, wie FormatDateTime, nutzen.

[edit] oder man hört mal auf DeddyH :angel2:

Luckie 11. Feb 2010 13:08

Re: FormatDateTime liefert englische Wochentage
 
Zitat:

Zitat von himitsu
Willst du die sprachabhängigen Strings von Windows, so wirst du diese selber auslesen müssen.

Das habe ich noch nie gemacht und wüsste auch gar nicht, wie das geht.

Tyrael Y. 11. Feb 2010 13:10

Re: FormatDateTime liefert englische Wochentage
 
Schnellster und einfachster Weg zur Lösung deines Problems - mach was DeddyH sagt ;)

(Deine Delphi-Fehlermeldungen werden in deinem Fall trotzdem auf englisch erscheinen, deshalb ist eine Lokalisierung über kurz oder lang zu überdenken.)

Luckie 11. Feb 2010 13:11

Re: FormatDateTime liefert englische Wochentage
 
Nicht seine, sondern die von Delphi und da auch nur die, die er nicht behandelt und bis ganz oben durchschlagen.

DeddyH 11. Feb 2010 13:12

Re: FormatDateTime liefert englische Wochentage
 
Zitat:

Zitat von himitsu
[edit] oder man hört mal auf DeddyH :angel2:

Eben ;)
Delphi-Quellcode:
var Settings: TFormatSettings;
begin
  GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, Settings);
  ShowMessage(FormatDateTime('ddd, dd.mm.yy', now, Settings));
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:58 Uhr.
Seite 1 von 3  1 23      

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