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
Seite 4 von 4   « Erste     234   
Benutzerbild von KodeZwerg
KodeZwerg

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

AW: Datumsformat (TT.MM.JJJJ) anzeigen

  Alt 8. Jun 2018, 19: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
Alallart

Registriert seit: 8. Dez 2015
155 Beiträge
 
#32

AW: Datumsformat (TT.MM.JJJJ) anzeigen

  Alt 8. Jun 2018, 22:12
Sprich bei einem deutschen Windows mit deutschen Regional Einstellungen soll da stehen 'TT.MM.JJJJ' ein 'TFormatSettings.ShortDateFormat' gibt aber 'dd/MM/yyyy' aus. Das Format ist korrekt nur die Darstellung nicht so wie ich das gerne hätte.
So richtig verstehe ich dein Problem nicht wirklich. Ich habe dir bereits vor Tagen geschrieben, dass bei 'dd/MM/yyyy' die Schrägstriche Platzhalter sind. Ich habe dir auch geschrieben, dass es sowas wie einen DateSeparator und TimeSeparator gibt. Wenn also der Schrägstrich bei 'dd/MM/yyyy' ein Platzhalter für DateSeparator ist, und der Doppelpunkt ein Platzhalter für TimeSeparator ist, dann ist das auch so zu verstehen. Also, wenn da ein Schrägstich ist, dann einfach den Schrägstrich durch DateSeparator ersetzen. Schon klappt das.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Datumsformat (TT.MM.JJJJ) anzeigen

  Alt 8. Jun 2018, 23:51
So richtig verstehe ich dein Problem nicht wirklich.
Überraschenderweise scheint das hier gerade ein sehr weit verbreitetes Phänomen zu sein.
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.445 Beiträge
 
Delphi 12 Athens
 
#34

AW: Datumsformat (TT.MM.JJJJ) anzeigen

  Alt 8. Jun 2018, 23:55
So bekomme ich in etwa das hin was Uwe schreibt
Miniaturansicht angehängter Grafiken
08-06-_2018_23-54-30.png  
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
155 Beiträge
 
#35

AW: Datumsformat (TT.MM.JJJJ) anzeigen

  Alt 9. Jun 2018, 00:30
Vielleicht noch etwas - wie das Datumsformat aussehen soll steht in der ISO 8601.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

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

AW: Datumsformat (TT.MM.JJJJ) anzeigen

  Alt 9. Jun 2018, 01:30
Tut mir leid, mein Fehler, ich brachte Deinen Text mit diesen Ergebnissen durcheinander.
Delphi-Quellcode:
function LCIDToLocaleName(Locale: LCID; lpName: LPWSTR; cchName: Integer; dwFlags: DWORD): Integer; stdcall; external kernel32 name 'LCIDToLocaleName';
function LCIDToLocal ( LCID: Integer ) : String;
var
  strNameBuffer : array [0..LOCALE_NAME_MAX_LENGTH-1] of WideChar;
begin
  Result := '';
  if (LCIDToLocaleName(LCID, strNameBuffer, LOCALE_NAME_MAX_LENGTH, 0) = 0) then
      RaiseLastOSError
  else
      Result := strNameBuffer;
end;

procedure DoJob;
begin
 Memo1.Lines.Add('GetLocaleString: '+GetLocaleString(GetUserDefaultLangID));
 Memo1.Lines.Add('LCIDToLocal: ' + LCIDToLocal(GetUserDefaultLangID));
 Memo1.Lines.Add('LOCALE_ILANGUAGE: ' + GLIx(LOCALE_ILANGUAGE));
 Memo1.Lines.Add('LOCALE_SLANGUAGE: ' + GLIx(LOCALE_SLANGUAGE));
 Memo1.Lines.Add('LOCALE_SENGLANGUAGE: ' + GLIx(LOCALE_SENGLANGUAGE));
 Memo1.Lines.Add('LOCALE_SABBREVLANGNAME: ' + GLIx(LOCALE_SABBREVLANGNAME));
 Memo1.Lines.Add('LOCALE_SNATIVECTRYNAME: ' + GLIx(LOCALE_SNATIVECTRYNAME));
 Memo1.Lines.Add('LOCALE_ICOUNTRY: ' + GLIx(LOCALE_ICOUNTRY));
 Memo1.Lines.Add('LOCALE_SCOUNTRY: ' + GLIx(LOCALE_SCOUNTRY));
 Memo1.Lines.Add('LOCALE_SENGCOUNTRY: ' + GLIx(LOCALE_SENGCOUNTRY));
 Memo1.Lines.Add('LOCALE_SABBREVCTRYNAME: ' + GLIx(LOCALE_SABBREVCTRYNAME));
 Memo1.Lines.Add('LOCALE_SNATIVECTRYNAME: ' + GLIx(LOCALE_SNATIVECTRYNAME));
 Memo1.Lines.Add('LOCALE_IDEFAULTLANGUAGE: ' + GLIx(LOCALE_IDEFAULTLANGUAGE));
 Memo1.Lines.Add('LOCALE_IDEFAULTCOUNTRY: ' + GLIx(LOCALE_IDEFAULTCOUNTRY));
 Memo1.Lines.Add('LOCALE_IDEFAULTCODEPAGE: ' + GLIx(LOCALE_IDEFAULTCODEPAGE));
 Memo1.Lines.Add('LOCALE_IDEFAULTANSICODEPAGE: ' + GLIx(LOCALE_IDEFAULTANSICODEPAGE));
 Memo1.Lines.Add('LOCALE_IDEFAULTMACCODEPAGE: ' + GLIx(LOCALE_IDEFAULTMACCODEPAGE));
 Memo1.Lines.Add('LOCALE_SLIST: ' + GLIx(LOCALE_SLIST));
 Memo1.Lines.Add('LOCALE_IMEASURE: ' + GLIx(LOCALE_IMEASURE));
 Memo1.Lines.Add('LOCALE_SDECIMAL: ' + GLIx(LOCALE_SDECIMAL));
 Memo1.Lines.Add('LOCALE_STHOUSAND: ' + GLIx(LOCALE_STHOUSAND));
 Memo1.Lines.Add('LOCALE_SGROUPING: ' + GLIx(LOCALE_SGROUPING));
 Memo1.Lines.Add('LOCALE_IDIGITS: ' + GLIx(LOCALE_IDIGITS));
 Memo1.Lines.Add('LOCALE_ILZERO: ' + GLIx(LOCALE_ILZERO));
 Memo1.Lines.Add('LOCALE_INEGNUMBER: ' + GLIx(LOCALE_INEGNUMBER));
 Memo1.Lines.Add('LOCALE_SNATIVEDIGITS: ' + GLIx(LOCALE_SNATIVEDIGITS));
 Memo1.Lines.Add('LOCALE_SCURRENCY: ' + GLIx(LOCALE_SCURRENCY));
 Memo1.Lines.Add('LOCALE_SINTLSYMBOL: ' + GLIx(LOCALE_SINTLSYMBOL));
 Memo1.Lines.Add('LOCALE_SMONDECIMALSEP: ' + GLIx(LOCALE_SMONDECIMALSEP));
 Memo1.Lines.Add('LOCALE_SMONTHOUSANDSEP: ' + GLIx(LOCALE_SMONTHOUSANDSEP));
 Memo1.Lines.Add('LOCALE_SMONGROUPING: ' + GLIx(LOCALE_SMONGROUPING));
 Memo1.Lines.Add('LOCALE_ICURRDIGITS: ' + GLIx(LOCALE_ICURRDIGITS));
 Memo1.Lines.Add('LOCALE_IINTLCURRDIGITS: ' + GLIx(LOCALE_IINTLCURRDIGITS));
 Memo1.Lines.Add('LOCALE_ICURRENCY: ' + GLIx(LOCALE_ICURRENCY));
 Memo1.Lines.Add('LOCALE_INEGCURR: ' + GLIx(LOCALE_INEGCURR));
 Memo1.Lines.Add('LOCALE_SDATE: ' + GLIx(LOCALE_SDATE));
 Memo1.Lines.Add('LOCALE_STIME: ' + GLIx(LOCALE_STIME));
 Memo1.Lines.Add('LOCALE_SSHORTDATE: ' + GLIx(LOCALE_SSHORTDATE));
 Memo1.Lines.Add('LOCALE_SLONGDATE: ' + GLIx(LOCALE_SLONGDATE));
 Memo1.Lines.Add('LOCALE_STIMEFORMAT: ' + GLIx(LOCALE_STIMEFORMAT));
 Memo1.Lines.Add('LOCALE_IDATE: ' + GLIx(LOCALE_IDATE));
 Memo1.Lines.Add('LOCALE_ILDATE: ' + GLIx(LOCALE_ILDATE));
 Memo1.Lines.Add('LOCALE_ITIME: ' + GLIx(LOCALE_ITIME));
 Memo1.Lines.Add('LOCALE_ITIMEMARKPOSN: ' + GLIx(LOCALE_ITIMEMARKPOSN));
 Memo1.Lines.Add('LOCALE_ICENTURY: ' + GLIx(LOCALE_ICENTURY));
 Memo1.Lines.Add('LOCALE_ITLZERO: ' + GLIx(LOCALE_ITLZERO));
 Memo1.Lines.Add('LOCALE_IDAYLZERO: ' + GLIx(LOCALE_IDAYLZERO));
 Memo1.Lines.Add('LOCALE_IMONLZERO: ' + GLIx(LOCALE_IMONLZERO));
 Memo1.Lines.Add('LOCALE_S1159: ' + GLIx(LOCALE_S1159));
 Memo1.Lines.Add('LOCALE_S2359: ' + GLIx(LOCALE_S2359));
 Memo1.Lines.Add('LOCALE_ICALENDARTYPE: ' + GLIx(LOCALE_ICALENDARTYPE));
 Memo1.Lines.Add('LOCALE_IOPTIONALCALENDAR: ' + GLIx(LOCALE_IOPTIONALCALENDAR));
 Memo1.Lines.Add('LOCALE_IFIRSTDAYOFWEEK: ' + GLIx(LOCALE_IFIRSTDAYOFWEEK));
 Memo1.Lines.Add('LOCALE_IFIRSTWEEKOFYEAR: ' + GLIx(LOCALE_IFIRSTWEEKOFYEAR));
 Memo1.Lines.Add('LOCALE_SDAYNAME1: ' + GLIx(LOCALE_SDAYNAME1));
 Memo1.Lines.Add('LOCALE_SDAYNAME2: ' + GLIx(LOCALE_SDAYNAME2));
 Memo1.Lines.Add('LOCALE_SDAYNAME3: ' + GLIx(LOCALE_SDAYNAME3));
 Memo1.Lines.Add('LOCALE_SDAYNAME4: ' + GLIx(LOCALE_SDAYNAME4));
 Memo1.Lines.Add('LOCALE_SDAYNAME5: ' + GLIx(LOCALE_SDAYNAME5));
 Memo1.Lines.Add('LOCALE_SDAYNAME6: ' + GLIx(LOCALE_SDAYNAME6));
 Memo1.Lines.Add('LOCALE_SDAYNAME7: ' + GLIx(LOCALE_SDAYNAME7));
 Memo1.Lines.Add('LOCALE_SABBREVDAYNAME1: ' + GLIx(LOCALE_SABBREVDAYNAME1));
 Memo1.Lines.Add('LOCALE_SABBREVDAYNAME2: ' + GLIx(LOCALE_SABBREVDAYNAME2));
 Memo1.Lines.Add('LOCALE_SABBREVDAYNAME3: ' + GLIx(LOCALE_SABBREVDAYNAME3));
 Memo1.Lines.Add('LOCALE_SABBREVDAYNAME4: ' + GLIx(LOCALE_SABBREVDAYNAME4));
 Memo1.Lines.Add('LOCALE_SABBREVDAYNAME5: ' + GLIx(LOCALE_SABBREVDAYNAME5));
 Memo1.Lines.Add('LOCALE_SABBREVDAYNAME6: ' + GLIx(LOCALE_SABBREVDAYNAME6));
 Memo1.Lines.Add('LOCALE_SABBREVDAYNAME7: ' + GLIx(LOCALE_SABBREVDAYNAME7));
 Memo1.Lines.Add('LOCALE_SMONTHNAME1: ' + GLIx(LOCALE_SMONTHNAME1));
 Memo1.Lines.Add('LOCALE_SMONTHNAME2: ' + GLIx(LOCALE_SMONTHNAME2));
 Memo1.Lines.Add('LOCALE_SMONTHNAME3: ' + GLIx(LOCALE_SMONTHNAME3));
 Memo1.Lines.Add('LOCALE_SMONTHNAME4: ' + GLIx(LOCALE_SMONTHNAME4));
 Memo1.Lines.Add('LOCALE_SMONTHNAME5: ' + GLIx(LOCALE_SMONTHNAME5));
 Memo1.Lines.Add('LOCALE_SMONTHNAME6: ' + GLIx(LOCALE_SMONTHNAME6));
 Memo1.Lines.Add('LOCALE_SMONTHNAME7: ' + GLIx(LOCALE_SMONTHNAME7));
 Memo1.Lines.Add('LOCALE_SMONTHNAME8: ' + GLIx(LOCALE_SMONTHNAME8));
 Memo1.Lines.Add('LOCALE_SMONTHNAME9: ' + GLIx(LOCALE_SMONTHNAME9));
 Memo1.Lines.Add('LOCALE_SMONTHNAME10: ' + GLIx(LOCALE_SMONTHNAME10));
 Memo1.Lines.Add('LOCALE_SMONTHNAME11: ' + GLIx(LOCALE_SMONTHNAME11));
 Memo1.Lines.Add('LOCALE_SMONTHNAME12: ' + GLIx(LOCALE_SMONTHNAME12));
 Memo1.Lines.Add('LOCALE_SMONTHNAME13: ' + GLIx(LOCALE_SMONTHNAME13));
 Memo1.Lines.Add('LOCALE_SABBREVMONTHNAME1: ' + GLIx(LOCALE_SABBREVMONTHNAME1));
 Memo1.Lines.Add('LOCALE_SABBREVMONTHNAME2: ' + GLIx(LOCALE_SABBREVMONTHNAME2));
 Memo1.Lines.Add('LOCALE_SABBREVMONTHNAME3: ' + GLIx(LOCALE_SABBREVMONTHNAME3));
 Memo1.Lines.Add('LOCALE_SABBREVMONTHNAME4: ' + GLIx(LOCALE_SABBREVMONTHNAME4));
 Memo1.Lines.Add('LOCALE_SABBREVMONTHNAME5: ' + GLIx(LOCALE_SABBREVMONTHNAME5));
 Memo1.Lines.Add('LOCALE_SABBREVMONTHNAME6: ' + GLIx(LOCALE_SABBREVMONTHNAME6));
 Memo1.Lines.Add('LOCALE_SABBREVMONTHNAME7: ' + GLIx(LOCALE_SABBREVMONTHNAME7));
 Memo1.Lines.Add('LOCALE_SABBREVMONTHNAME8: ' + GLIx(LOCALE_SABBREVMONTHNAME8));
 Memo1.Lines.Add('LOCALE_SABBREVMONTHNAME9: ' + GLIx(LOCALE_SABBREVMONTHNAME9));
 Memo1.Lines.Add('LOCALE_SABBREVMONTHNAME10: ' + GLIx(LOCALE_SABBREVMONTHNAME10));
 Memo1.Lines.Add('LOCALE_SABBREVMONTHNAME11: ' + GLIx(LOCALE_SABBREVMONTHNAME11));
 Memo1.Lines.Add('LOCALE_SABBREVMONTHNAME12: ' + GLIx(LOCALE_SABBREVMONTHNAME12));
 Memo1.Lines.Add('LOCALE_SABBREVMONTHNAME13: ' + GLIx(LOCALE_SABBREVMONTHNAME13));
 Memo1.Lines.Add('LOCALE_SPOSITIVESIGN: ' + GLIx(LOCALE_SPOSITIVESIGN));
 Memo1.Lines.Add('LOCALE_SNEGATIVESIGN: ' + GLIx(LOCALE_SNEGATIVESIGN));
 Memo1.Lines.Add('LOCALE_IPOSSIGNPOSN: ' + GLIx(LOCALE_IPOSSIGNPOSN));
 Memo1.Lines.Add('LOCALE_INEGSIGNPOSN: ' + GLIx(LOCALE_INEGSIGNPOSN));
 Memo1.Lines.Add('LOCALE_IPOSSYMPRECEDES: ' + GLIx(LOCALE_IPOSSYMPRECEDES));
 Memo1.Lines.Add('LOCALE_IPOSSEPBYSPACE: ' + GLIx(LOCALE_IPOSSEPBYSPACE));
 Memo1.Lines.Add('LOCALE_INEGSYMPRECEDES: ' + GLIx(LOCALE_INEGSYMPRECEDES));
 Memo1.Lines.Add('LOCALE_INEGSEPBYSPACE: ' + GLIx(LOCALE_INEGSEPBYSPACE));
 Memo1.Lines.Add('LOCALE_FONTSIGNATURE: ' + GLIx(LOCALE_FONTSIGNATURE));
 Memo1.Lines.Add('LOCALE_SISO639LANGNAME: ' + GLIx(LOCALE_SISO639LANGNAME));
 Memo1.Lines.Add('LOCALE_SISO3166CTRYNAME: ' + GLIx(LOCALE_SISO3166CTRYNAME));
end;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
609 Beiträge
 
Delphi 11 Alexandria
 
#37

AW: Datumsformat (TT.MM.JJJJ) anzeigen

  Alt 11. Jun 2018, 14:34
So richtig verstehe ich dein Problem nicht wirklich.
Überraschenderweise scheint das hier gerade ein sehr weit verbreitetes Phänomen zu sein.
Ich hätte das wohl besser etwas verständlicher schreiben sollen, aber immerhin haben es ein paar ja doch verstanden.

Danke jedenfalls für die Hilfe, hab das Thema mal nach hinten geschoben da es da wohl außer einer manuellen Übersetzung keine Lösung für gibt.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Datumsformat (TT.MM.JJJJ) anzeigen

  Alt 11. Jun 2018, 14:45
da es da wohl außer einer manuellen Übersetzung keine Lösung für gibt.
Wie auch. Die Übersetzung hängt ja nicht einmal von der aktuellen Windows-Sprache ab, sondern von der deines Programms (außer, du schreibst eine Shell-Extension oder sowas).
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.052 Beiträge
 
Delphi 12 Athens
 
#39

AW: Datumsformat (TT.MM.JJJJ) anzeigen

  Alt 11. Jun 2018, 14:53
Ich will kein Datum formatieren sondern die Formatierung anzeigen.


So sollte es sein...
Zitat:
Bitte geben sie das Datum im Format TT.MM.JJJJ ein!
und so ist es im Moment
Zitat:
Bitte geben sie das Datum im Format dd/MM/yyyy ein!
Dann solltest du vorher besser einmal den Aufbau dieser Formatstrings lernen.

Das was im String als Trennzeichen steht ist nicht unbedingt das Angezeigte,
denn / bedeutet hierbei nunmal, dass dort der jeweilige DateSeparator eingefügt werden soll.
ShowMessage(ReplaceStr(FmtSet.LongDateFormat, '/', FmtSet.DateSeparator)); // dd.MM.yyyy
Natürlich könnte man in diesem DateFormat-String auch direkt das Datumszeichen setzen, aber das macht Spaß, wenn man ein englisches Format schreibt und dann den DateSeparator falsch setzt, der das wieder überschreibt.

Aber das Lokalisierte TT.MM.JJJJ bekommst du da niemals raus, außer du übersetzt das auch noch. (Y>J, D>T usw.),
und viel Spaß mit M für Month oder Minute, je nach dem ob davor ein Datums- oder Zeitformatzeichen steht. (bei zusammengesetzten Datum&Zeitstrings)
Dieser Formatstring ist grundsätzlich immer englisch und gibt nur die Reihenfolge/Position/Größe der Felder an.





PS: Es gibt auch noch den Bug in einigen vorinstallierten Windowsen.
Im Windows gibt es mehrere Stellen, wo das Format gespeichert ist und da vergisst gern jemand alle Stellen anzupassen.
Windows zeigt das Eine in den Einstellungsdialogen an, aber Delphi liest dann das Andere aus. (da z.B. mal kurz nach Englisch umstellen, speichern und wieder zurück auf Deutsch)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (11. Jun 2018 um 15:12 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


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 16:27 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