GetTimeFormatEx-Funktion (datetimeapi.h)
Formatiert die Zeit als Zeitzeichenfolge für ein gebietsschema, das durch den Namen angegeben wird. Die Funktion formatiert entweder eine angegebene Zeit oder die lokale Systemzeit.
Syntax
int GetTimeFormatEx(
[in, optional] LPCWSTR lpLocaleName,
[in] DWORD dwFlags,
[in, optional] const SYSTEMTIME *lpTime,
[in, optional] LPCWSTR lpFormat,
[out, optional] LPWSTR lpTimeStr,
[in] int cchTime
);
Parameter
[in, optional] lpLocaleName
Zeiger auf einen Gebietsschemanamen oder einen der folgenden vordefinierten Werte.
[in] dwFlags
Flags, die Zeitformatoptionen angeben. Die Anwendung kann eine Kombination aus den folgenden Werten und LOCALE_USE_CP_ACP oder LOCALE_NOUSEROVERRIDE angeben.
[in, optional] lpTime
Zeiger auf eine SYSTEMTIME-Struktur , die die zu formatierenden Zeitinformationen enthält. Die Anwendung kann diesen Parameter auf NULL festlegen, wenn die Funktion die aktuelle lokale Systemzeit verwenden soll.
[in, optional] lpFormat
Zeiger auf ein Formatbild, das zum Formatieren der Zeitzeichenfolge verwendet werden soll. Wenn die Anwendung diesen Parameter auf NULL festlegt, formatiert die Funktion die Zeichenfolge entsprechend dem Zeitformat des angegebenen Gebietsschemas. Wenn die Anwendung den Parameter nicht auf NULL festlegt, verwendet die Funktion das Gebietsschema nur für Informationen, die nicht in der Formatbildzeichenfolge angegeben sind, z. B. die gebietsschemaspezifischen Zeitmarkierungen. Informationen zur Formatbildzeichenfolge finden Sie im Abschnitt Hinweise.
[out, optional] lpTimeStr
Zeiger auf einen Puffer, in dem diese Funktion die formatierte Zeitzeichenfolge abruft.
[in] cchTime
Größe in Zeichen für den Zeitzeichenfolgenpuffer, der von lpTimeStr angegeben wird. Alternativ kann die Anwendung diesen Parameter auf 0 festlegen. In diesem Fall gibt die Funktion die erforderliche Größe für den Zeitzeichenfolgenpuffer zurück und verwendet nicht den lpTimeStr-Parameter .
Rückgabewert
Gibt die Anzahl der im Puffer abgerufenen Zeichen zurück, die von lpTimeStr angegeben werden. Wenn der cchTime-Parameter auf 0 festgelegt ist, gibt die Funktion die Größe des Puffers zurück, die erforderlich ist, um die formatierte Zeitzeichenfolge zu enthalten, einschließlich eines beendenden NULL-Zeichens.
Diese Funktion gibt 0 zurück, wenn sie nicht erfolgreich ist. Um erweiterte Fehlerinformationen abzurufen, kann die Anwendung GetLastError aufrufen, wodurch einer der folgenden Fehlercodes zurückgegeben werden kann:
- ERROR_INSUFFICIENT_BUFFER. Eine angegebene Puffergröße war nicht groß genug, oder sie wurde fälschlicherweise auf NULL festgelegt.
- ERROR_INVALID_FLAGS. Die für Flags angegebenen Werte waren ungültig.
- ERROR_INVALID_PARAMETER. Jeder der Parameterwerte war ungültig.
- ERROR_OUTOFMEMORY. Für diesen Vorgang war nicht genügend Speicher verfügbar.
Hinweise
Wenn eine Zeitmarkierung vorhanden ist und das TIME_NOTIMEMARKER-Flag nicht festgelegt ist, lokalisiert die Funktion den Zeitmarker basierend auf dem angegebenen Gebietsschemabezeichner. Beispiele für Zeitmarkierungen sind "AM" und "PM" für Englisch (USA).
Die Von lpTime angegebenen Zeitwerte in der Struktur müssen gültig sein. Die Funktion überprüft jeden Zeitwert, um festzustellen, ob sie sich innerhalb des entsprechenden Wertebereichs befindet. Wenn sich ein Zeitwert außerhalb des richtigen Bereichs befindet, schlägt die Funktion fehl und legt den letzten Fehler auf ERROR_INVALID_PARAMETER fest.
Die Funktion ignoriert die Datumsmember der SYSTEMTIME-Struktur . Dazu gehören: wYear, wMonth, wDayOfWeek und wDay.
Wenn TIME_NOMINUTESORSECONDS oder TIME_NOSECONDS angegeben ist, entfernt die Funktion die Trennzeichen nach den Elementen Minuten und/oder Sekunden.
Wenn TIME_NOTIMEMARKER angegeben ist, entfernt die Funktion die Trennzeichen vor und nach der Zeitmarkierung.
Wenn TIME_FORCE24HOURFORMAT angegeben ist, zeigt die Funktion eine vorhandene Zeitmarkierung an, es sei denn, das flag TIME_NOTIMEMARKER ist ebenfalls festgelegt.
Die Funktion enthält keine Millisekunden als Teil der formatierten Zeitzeichenfolge.
Die Funktion gibt keine Fehler für eine fehlerhafte Formatzeichenfolge zurück, sondern bildet nur die bestmögliche Zeitzeichenfolge. Wenn Bilder im Format von mehr als zwei Stunden, Minuten, Sekunden oder Zeitmarkierungen übergeben werden, wird die Funktion standardmäßig auf zwei festgelegt. Die einzigen gültigen Zeitmarkerbilder sind beispielsweise "t" und "tt". Wenn "ttt" übergeben wird, geht die Funktion von "tt" aus.
Um das Zeitformat ohne tatsächliche Formatierung zu erhalten, sollte die Anwendung die GetLocaleInfoEx-Funktion verwenden und LOCALE_STIMEFORMAT angeben.
Die Anwendung kann die folgenden Elemente verwenden, um eine Formatbildzeichenfolge zu erstellen. Wenn Leerzeichen verwendet werden, um die Elemente in der Formatzeichenfolge zu trennen, werden diese Leerzeichen an derselben Position in der Ausgabezeichenfolge angezeigt. Die Buchstaben müssen groß- oder klein geschrieben sein, z. B. "ss", nicht "SS". Zeichen in der Formatzeichenfolge, die in einzelne Anführungszeichen eingeschlossen sind, werden an derselben Position und unverändert in der Ausgabezeichenfolge angezeigt.
Picture | Bedeutung |
---|---|
h | Stunden ohne führende Null für einstellige Stunden; 12-Stunden-Uhr |
hh | Stunden mit führendem Null für einstellige Stunden; 12-Stunden-Uhr |
H | Stunden ohne führende Null für einstellige Stunden; 24-Stunden-Uhr |
HH | Stunden mit führendem Null für einstellige Stunden; 24-Stunden-Uhr |
m | Minuten ohne führende Null für einstellige Minuten |
mm | Minuten mit führender Null für einstellige Minuten |
s | Sekunden ohne führende Null für einstellige Sekunden |
ss | Sekunden mit führender Null für einstellige Sekunden |
t | Ein zeichenweise Zeitmarkierungszeichenfolge, z. B. A oder P |
tt | Mehrzeichen-Zeitmarkierungszeichenfolge, z. B. AM oder PM |
Beispielsweise, um die Zeitzeichenfolge abzurufen
"11:29:40 PM"
Die Anwendung sollte die Bildzeichenfolge verwenden
"hh':'mm':'ss tt"
Diese Funktion kann Daten aus benutzerdefinierten Gebietsschemas abrufen. Es ist nicht garantiert, dass die Daten von Computer zu Computer oder zwischen den Ausführungen einer Anwendung identisch sind. Wenn Ihre Anwendung Daten beibehalten oder übertragen muss, finden Sie weitere Informationen unter Verwenden persistenter Gebietsschemadaten.
Ab Windows 8: Wenn Ihre App Sprachtags aus dem Windows.Globalization-Namespace an diese Funktion übergibt, muss sie zuerst die Tags konvertieren, indem ResolveLocaleName aufgerufen wird.
Ab Windows 8: GetTimeFormatEx wird in Datetimeapi.h deklariert. Vor Windows 8 wurde sie in Winnls.h deklariert.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | datetimeapi.h |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |