AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie bekomme ich eine US-Datumszeit

Ein Thema von Alallart · begonnen am 23. Jan 2021 · letzter Beitrag vom 24. Jan 2021
Antwort Antwort
Alallart

Registriert seit: 8. Dez 2015
153 Beiträge
 
#1

Wie bekomme ich eine US-Datumszeit

  Alt 23. Jan 2021, 16:32
Wobei mich sowohl die Eingabe, wie auch die Ausgabe interessiert.

Den Typ TFormatSettings kenne ich, habe schon gelegentlich mit ihm gearbeitet. Allerdings drehte sich das stets um das Datum. Soweit kein Problem. Nun bekomme ich Datum und Zeit auf amerikanisch, also z. B. 01/23/2021 05:28 PM. Und um diese AM und PM geht es mir. Soweit ist das unkompliziert, man verändert z. B. bei ShortDateFormat den Formatstring. Wie aber gibt man TFormatSettings zu verstehen, dass die Uhrzeit amerikanisch ist?
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
153 Beiträge
 
#2

AW: Wie bekomme ich eine US-Datumszeit

  Alt 23. Jan 2021, 18:29
Ich habe etwas experimentiert, und habe es hinbekommen. Vielleicht braucht es jemand später auch, deshalb hier der Code:
Delphi-Quellcode:
function US_FormatDateTimeSettings: TFormatSettings;
begin
  //GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, Result);
  Result.DateSeparator := '/';
  Result.TimeSeparator := ':';
  Result.ShortDateFormat := 'MM/dd/yyyy';
  Result.ShortTimeFormat := 'hh:mm am/pm';
  Result.LongTimeFormat   := 'hh:mm:ss am/pm';
end;

function Default_FormatDateTimeSettings: TFormatSettings;
begin
  GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, Result);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  MyDate: TDateTime;
begin
  MyDate := StrToDateTime(Edit1.Text, US_FormatDateTimeSettings);

  ShowMessage(DateTimeToStr(MyDate, Default_FormatDateTimeSettings));
end;
Gibt man in Edit1 das Datum und Zeit im Format 01/23/2021 07:27 pm, kommt bei ShowMessage das Format 23.01.2021 19:27:00 raus.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Wie bekomme ich eine US-Datumszeit

  Alt 23. Jan 2021, 21:17
Schau dir mal an, was TFormatSettings.Create dir anbietet.
Mit eine Aufruf von TFormatSettings.Create('en-US') hast du ein fertig und komplett ausfülltes FormatSettings für den angloamerikanischen Sprachraum.
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
153 Beiträge
 
#4

AW: Wie bekomme ich eine US-Datumszeit

  Alt 23. Jan 2021, 21:35
Ich dachte immer TFormatSettings ist nur ein Typ? Ich habe eine etwas ältere Version von Delphi. So wie es aussieht geht das nicht bei mir.
  Mit Zitat antworten Zitat
Programmer87

Registriert seit: 21. Jan 2021
Ort: Hamburg
4 Beiträge
 
#5

AW: Wie bekomme ich eine US-Datumszeit

  Alt 24. Jan 2021, 07:47
Ich habe etwas experimentiert, und habe es hinbekommen. Vielleicht braucht es jemand später auch, deshalb hier der Code:
Delphi-Quellcode:
function US_FormatDateTimeSettings: TFormatSettings;
begin
  //GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, Result);
  Result.DateSeparator := '/';
  Result.TimeSeparator := ':';
  Result.ShortDateFormat := 'MM/dd/yyyy';
  Result.ShortTimeFormat := 'hh:mm am/pm';
  Result.LongTimeFormat   := 'hh:mm:ss am/pm';
end;

function Default_FormatDateTimeSettings: TFormatSettings;
begin
  GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, Result);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  MyDate: TDateTime;
begin
  MyDate := StrToDateTime(Edit1.Text, US_FormatDateTimeSettings);

  ShowMessage(DateTimeToStr(MyDate, Default_FormatDateTimeSettings));
end;
Gibt man in Edit1 das Datum und Zeit im Format 01/23/2021 07:27 pm, kommt bei ShowMessage das Format 23.01.2021 19:27:00 raus.
Super Danke!! Das ist wirklich sehr hilfreich! Ich hatte das gleich Problem
  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 03:59 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