AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Datumsformat (TT.MM.JJJJ) anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Datumsformat (TT.MM.JJJJ) anzeigen

Ein Thema von TUX_der_Pinguin · begonnen am 6. Jun 2018 · letzter Beitrag vom 11. Jun 2018
Antwort Antwort
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
984 Beiträge
 
Delphi 6 Professional
 
#1

AW: Datumsformat (TT.MM.JJJJ) anzeigen

  Alt 8. Jun 2018, 14:04
Hmm..

Aber das Ergebnis bleibt auch hier = dd.MM.yyyy
also irgendwie alles das gleiche nur eine andere Möglichkeit
Hatte ich doch schon geschrieben, dass mit dem dd.MM.yyyy

Es scheint keine API zu geben, um das 'TT.MM.JJJJ' zu erhalten, dies macht anscheinend der Windows-Dialog selber....
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.677 Beiträge
 
Delphi 12 Athens
 
#2

AW: Datumsformat (TT.MM.JJJJ) anzeigen

  Alt 8. Jun 2018, 14:10
Es scheint keine API zu geben, um das 'TT.MM.JJJJ' zu erhalten, dies macht anscheinend der Windows-Dialog selber....
Exakt!
https://www.delphipraxis.net/1404242-post13.html

Zitat:
Windows setzt diese Strings aus den Format-Strings anhand der aktuellen Sprache zusammen. Also ähnlich wie FormatDateTime, aber anstatt der Ziffern werden die entsprechenden Buchstaben (in Deutsch T, M und J) für Tag, Monat und Jahr eingesetzt. Die sprachabhängigen Buchstaben liegen als Resourcestrings in den verschiedenen mui-Dateien der intl.cpl. Welche davon genommen wird hängt von der aktuellen Sprache ab.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.677 Beiträge
 
Delphi 12 Athens
 
#3

AW: Datumsformat (TT.MM.JJJJ) anzeigen

  Alt 8. Jun 2018, 14:15
Um das nochmal zu verdeutlichen:

Region-Settings = Deutsch, Sprache = Deutsch => TT.MM.JJJJ
Region-Settings = English (US), Sprache = Deutsch => M/T/JJJJ
Region-Settings = Deutsch, Sprache = English => DD.MM.YYYY
Region-Settings = English (US), Sprache = English => M/D/YYYY
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Datumsformat (TT.MM.JJJJ) anzeigen

  Alt 8. Jun 2018, 15:31
Delphi-Quellcode:
function GLI(T: Cardinal): String;
var
   NeedLen : Integer;
begin
   NeedLen := GetLocaleInfo(LOCALE_USER_DEFAULT, t, nil, 0);
   SetLength(Result, NeedLen);
   if GetLocaleInfo(
     LOCALE_USER_DEFAULT, t, PChar(Result), NeedLen) <> 0
   then SetLength(Result, NeedLen-1)
   else RaiseLastOSError;
end;

function GetLocaleInfoEx(lpLocaleName: PWideChar; LCType: LCTYPE; lpLCData: PWideChar; cchData: Integer): Integer; stdcall; external kernel32 name 'GetLocaleInfoEx';
function GLIx(T: Cardinal): String;
const
  LOCALE_NAME_USER_DEFAULT = $00;
var
   NeedLen : Integer;
begin
   NeedLen := GetLocaleInfoEx(PChar(LOCALE_NAME_USER_DEFAULT), t, nil, 0);
   SetLength(Result, NeedLen);
   if GetLocaleInfoEx(PChar(LOCALE_NAME_USER_DEFAULT), t, PChar(Result), NeedLen) <> 0
   then SetLength(Result, NeedLen-1)
   else RaiseLastOSError;
end;

function GetFmtSet: String;
var
  FmtSet: TFormatSettings;
begin
  try
    GetLocaleFormatSettings(LOCALE_USER_DEFAULT, FmtSet);
  finally
    Result := FmtSet.ShortDateFormat;
  end;
end;
Delphi-Quellcode:
 ShowMessage('GLIx: ' + GLIx(LOCALE_SSHORTDATE));
 ShowMessage('GLI: ' + GLI(LOCALE_SSHORTDATE));
 ShowMessage('TFormatSettings:' + GetFmtSet);
Alle Varianten liefern "dd.MM.yyyy" als Ergebnis, ist es Geschmacksfrage oder gibt es da noch ein Richtig/Falsch ?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Datumsformat (TT.MM.JJJJ) anzeigen

  Alt 8. Jun 2018, 16:34
Zitat:
Alle Varianten liefern "dd.MM.yyyy" als Ergebnis, ist es Geschmacksfrage oder gibt es da noch ein Richtig/Falsch ?
Wurde doch schon beantwortet oder?

gruss
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Datumsformat (TT.MM.JJJJ) anzeigen

  Alt 8. Jun 2018, 18:44
Delphi-Quellcode:
function GetLocaleString(LangID: Integer): string;
var
  s: string;
begin
  Result := '';
  SetLength(s, 128);
  if GetLocaleInfo(LangID, LOCALE_SNATIVELANGNAME, PChar(s), 128) > 0 then
  begin
    Result := StrPas(PChar(s));
    if GetLocaleInfo(LangID, LOCALE_SNATIVECTRYNAME, PChar(s), 128) > 0 then
    begin
      Result := Format('%s (%s)', [Result, StrPas(PChar(s))]);
    end;
  end;
end;
ShowMessage(GetLocaleString(GetUserDefaultLangID)); So bekomme ich in etwa das hin was Uwe schreibt aber es beantwortet nicht meine Frage, Danke trotzdem.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.677 Beiträge
 
Delphi 12 Athens
 
#7

AW: Datumsformat (TT.MM.JJJJ) anzeigen

  Alt 8. Jun 2018, 22:55
So bekomme ich in etwa das hin was Uwe schreibt
Angehängte Grafiken
Dateityp: png 08-06-_2018_23-54-30.png (2,7 KB, 26x aufgerufen)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 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