Freigeben über


Abrufen von Zeit- und Datumsinformationen

Dieses Thema enthält Anweisungen zum Verwenden der NLS-Funktionen in Ihren Anwendungen, um Zeit- und Datumsinformationen sowie Dauerdaten abzurufen. Wenn Ihre Anwendung Daten beibehalten muss, finden Sie weitere Informationen unter Verwenden persistenter Gebietsschemadaten.

Windows Vista und höher: Die in diesem Thema erläuterten Funktionen können Daten aus benutzerdefinierten Gebietsschemas abrufen. Insbesondere können sie verwendet werden, um Zeit- und Datumsformate anzupassen. Beispielsweise ist es möglich, ein Zeitformat wie "hhHmm'ss'" zu verwenden, was zu Zeitzeichenfolgen wie "12H34'12''" führt.

Abrufen von Zeitinformationen

Ihre Anwendung kann Zeichenfolgen jederzeit in einem Format abrufen, das für das aktuelle Gebietsschema geeignet ist, indem sie die Funktionen GetTimeFormat und GetTimeFormatEx verwendet. Beide Funktionen überprüfen jeden Zeitwert in einer gültigen SYSTEMTIME-Struktur , um festzustellen, dass sie sich innerhalb des entsprechenden Wertebereichs befinden, wobei die Datumsteile der Struktur ignoriert werden. Wenn sich einer der Zeitwerte außerhalb des richtigen Bereichs befindet, schlägt die Funktion mit dem Code ERROR_INVALID_PARAMETER fehl. Die Funktion gibt keine Fehler für eine fehlerhafte Formatzeichenfolge zurück, sondern bildet einfach die bestmögliche Zeitzeichenfolge.

Hinweis

Die NLS-Zeitfunktionen enthalten keine Millisekunden als Teil einer formatierten Zeitzeichenfolge.

 

Um das Zeitformat zu erhalten, ohne eine tatsächliche Formatierung auszuführen, kann die Anwendung die Funktion GetLocaleInfo oder GetLocaleInfoEx verwenden und die LOCALE_STIMEFORMAT Konstante im Aufruf angeben.

Verwenden von Zeitmarkierungen

Beispiele für Zeitmarkierungen sind "AM" und "PM" für Englisch (USA) und "de." und "du." für Spanisch (Mexiko). Wenn TIME_NOTIMEMARKER im Aufruf von GetTimeFormat oder GetTimeFormatEx angegeben wird, entfernt die Funktion die Trennzeichen vor und nach der Zeitmarkierung. Wenn eine Zeitmarkierung vorhanden ist und das TIME_NOTIMEMARKER-Flag im Aufruf nicht festgelegt ist, lokalisiert die Funktion die Zeitmarkierung basierend auf dem angegebenen Gebietsschemabezeichner.

Entfernen von Trennzeichen vor Minuten und Sekunden

Ihre Anwendung kann GetTimeFormat oder GetTimeFormatEx mit TIME_NOMINUTESORSECONDS oder TIME_NOSECONDS aufrufen, um die Trennzeichen nach den Elementen Minuten und/oder Sekunden zu entfernen.

Verwenden des 24-Stunden-Zeitformats

Wenn Ihre Anwendung das 24-Stunden-Zeitformat unterstützt, kann sie GetTimeFormat oder GetTimeFormatEx mit TIME_FORCE24HOURFORMAT aufrufen. Sofern das TIME_NOTIMEMARKER-Flag nicht festgelegt ist, zeigt die Funktion eine vorhandene Zeitmarkierung an.

Abrufen von Datumsinformationen

Eine Anwendung kann Zeichenfolgen für ein beliebiges Datum in einem Format abrufen, das für das aktuelle Gebietsschema geeignet ist, indem sie die Funktionen GetDateFormat und GetDateFormatEx verwendet. Beide Funktionen überprüfen jeden der Datumswerte Jahr, Monat, Tag und Wochentag in einer gültigen SYSTEMTIME-Struktur , wobei die Zeitabschnitte der Struktur ignoriert werden. Der Tagname, der abgekürzte Tagname, der Name des Monats und der abgekürzte Monatsname werden alle basierend auf dem Gebietsschemabezeichner lokalisiert. Wenn der Wochentag falsch ist, verwendet die Funktion den richtigen Wert und gibt keinen Fehler zurück. Wenn sich einer der anderen Datumswerte außerhalb des richtigen Bereichs befindet, schlägt die Funktion mit dem Code ERROR_INVALID_PARAMETER fehl. Die Funktion gibt keine Fehler für eine fehlerhafte Formatzeichenfolge zurück, sondern bildet einfach die bestmögliche Datumszeichenfolge.

Wenn die Anwendung das Datumsformat für einen bestimmten Kalender erfordert, sollte sie GetCalendarInfo oder GetCalendarInfoEx verwenden und den entsprechenden Kalenderbezeichner übergeben. Um alle Datumsformate für einen bestimmten Kalender zurückzugeben, kann die Anwendung EnumCalendarInfoEx, EnumCalendarInfoEx,EnumDateFormatsEx oder EnumDateFormatsEx verwenden.

Angeben eines alternativen Kalenders

Die Anwendung kann GetDateFormat oder GetDateFormatEx mit dem Flag aufrufen, DATE_USE_ALT_CALENDAR das Standardformat für den angegebenen alternativen Kalender zu verwenden. Wenn kein Standardformat für den alternativen Kalender vorhanden ist, verwendet die Funktion die Benutzerüberschreibungen.

Um das Datumsformat für einen alternativen Kalender abzurufen, kann die Anwendung GetLocaleInfo oder GetLocaleInfoEx mit der LOCALE_IOPTIONALCALENDAR Konstanten verwenden.

Datumstyp angeben

Wenn die Anwendung das kurze Datumsformat verwenden möchte, gibt sie DATE_SHORTDATE im Aufruf von GetDateFormat oder GetDateFormatEx an. Ein langes Datumsformat kann durch Angabe von DATE_LONGDATE im Funktionsaufruf abgerufen werden. Wenn keines der Flags angegeben ist und lpFormat auf NULL festgelegt ist, verwendet die Funktion DATE_SHORTDATE als Standardeinstellung.

Um das Kurze und Lange Datumsformat für das Standardgebietsschema zu erhalten, sollte die Anwendung die GetLocaleInfo - oder GetLocaleInfoEx-Funktion mit der LOCALE_SSHORTDATE oder LOCALE_SLONGDATE Konstanten verwenden.

Angeben des Datumsformatbilds

Die Anwendung kann ein Datumsformatbild angeben, das GetDateFormat oder GetDateFormatEx verwendet, um die Datumszeichenfolge zu bilden. Wenn das Datumsformat für das angegebene Gebietsschema erforderlich ist, kann die Anwendung die Funktion aufrufen, wobei lpFormat auf NULL festgelegt ist. Wenn der Parameter nicht auf NULL festgelegt ist, verwendet die Funktion das Gebietsschema nur für Informationen, die nicht in der Bildzeichenfolge im Format angegeben sind, z. B. die Tag- und Monatsnamen für das Gebietsschema.

Die Anwendung kann jeden Text, der in seiner exakten Form erhalten bleiben soll, in einfache Anführungszeichen einschließen. Ein einzelnes Anführungszeichen kann auch als Escapezeichen verwendet werden, damit die Marke selbst in der Datumszeichenfolge angezeigt werden kann. Die Escapesequenz muss jedoch in zwei einfache Anführungszeichen eingeschlossen werden. Um das Datum beispielsweise als "Mai '93" anzuzeigen, lautet die Formatzeichenfolge: "MMMM ''''yy ".

Abrufen von Dauerinformationen

Windows Vista und höher: Die Funktionen GetDurationFormat und GetDurationFormatEx stehen zum Abrufen von Dauerformaten für Gebietsschemas, einschließlich benutzerdefinierter Gebietsschemas, zur Verfügung. Um das Standarddauerformat für ein Gebietsschema zu erhalten, sollte die Anwendung die GetLocaleInfo - oder GetLocaleInfoEx-Funktion mit der LOCALE_SDURATION-Konstante verwenden.

Verwenden der Unterstützung für nationale Sprachen

Uhrzeit und Datum

Verwenden persistenter Gebietsschemadaten