gmtime_s
, _gmtime32_s
, _gmtime64_s
Konvertiert einen Zeitwert in eine tm
-Struktur. Diese Funktionen sind Versionen von _gmtime32
, _gmtime64
mit Sicherheitsverbesserungen wie unter Sicherheitsfunktionen in der CRT beschrieben.
Syntax
errno_t gmtime_s(
struct tm* tmDest,
const __time_t* sourceTime
);
errno_t _gmtime32_s(
struct tm* tmDest,
const __time32_t* sourceTime
);
errno_t _gmtime64_s(
struct tm* tmDest,
const __time64_t* sourceTime
);
Parameter
tmDest
Zeiger auf eine tm
-Struktur. Die Felder der zurückgegebenen Struktur enthalten den ausgewerteten Wert des timer
-Arguments im UTC-Format. Die Angabe erfolgt nicht in Ortszeit.
sourceTime
Zeiger auf die gespeicherte Zeit Die Zeit wird in Sekunden dargestellt, die seit dem 1. Januar 1970, Mitternacht (00:00: 00), verstrichen sind. Die Anzeige erfolgt im UTC-Format.
Rückgabewert
Null, wenn erfolgreich. Der Rückgabewert ist ein Fehlercode, falls ein Fehler auftritt. Fehlercodes sind in Errno.h
definiert. Eine Liste dieser Fehler finden Sie unter errno
.
Fehlerbedingungen
tmDest |
sourceTime |
Return | Wert in tmDest . |
---|---|---|---|
NULL |
Beliebig | EINVAL |
Nicht geändert. |
Nicht NULL (zeigt gültigen Speicher an) |
NULL |
EINVAL |
Alle Felder auf -1 festgelegt. |
Nicht NULL |
< 0 | EINVAL |
Alle Felder auf -1 festgelegt. |
Bei den ersten beiden Fehlerbedingungen wird ein Handler für ungültige Parameter aufgerufen, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, stellen diese Funktionen errno
auf EINVAL
ein und geben EINVAL
zurück.
Hinweise
Die _gmtime32_s
-Funktion gliedert den sourceTime
-Wert und speichert diesen in eine Struktur vom Typ tm
, die in Time.h
definiert ist. Die Adresse dieser Struktur wird in tmDest
übergeben. Der Wert von sourceTime
wird oft durch einen Aufruf der time
-Funktion abgerufen.
Jedes Strukturfeld ist vom Typ int
, wie in der folgenden Tabelle dargestellt wird.
Feld | Beschreibung |
---|---|
tm_sec |
Sekunden nach Minute (0 - 59). |
tm_min |
Minuten nach Stunde (0 - 59). |
tm_hour |
Stunden seit Mitternacht (0 - 23). |
tm_mday |
Tag im Monat (1 - 31). |
tm_mon |
Monat (0 - 11; Januar = 0). |
tm_year |
Jahr (aktuelles Jahr minus 1900). |
tm_wday |
Tag der Woche (0 - 6; Sonntag = 0). |
tm_yday |
Tag des Jahres (0 - 365; Januar 1 = 0). |
tm_isdst |
Für gmtime_s immer 0. |
_gmtime64_s
, das die __time64_t
-Struktur verwendet, erlaubt das Ausdrücken von Daten über den 31. Dezember 3000, 23:59:59 UTC hinaus, während gmtime32_s
nur Datumsangaben bis zum 18. Januar 2038, 23:59:59 UTC, darstellt. Der 1. Januar 1970 (Mitternacht) ist der untere Datumsbereich für diese beiden Funktionen.
gmtime_s
ist eine Inlinefunktion, die _gmtime64_s
auswertet, und time_t
entspricht __time64_t
. Wenn Sie den Compiler zwingen müssen, time_t
als das alte 32-Bit-time_t
zu interpretieren, definieren Sie _USE_32BIT_TIME_T
. _USE_32BIT_TIME_T
bewirkt, dass gmtime_s
als _gmtime32_s
inlineiert wird. _USE_32BIT_TIME_T
ist nicht zu empfehlen, weil bei Ihrer Anwendung nach dem 18. Januar 2038 ein Fehler auftreten kann. Die Verwendung ist außerdem auf 64-Bit-Plattformen nicht zulässig.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Anforderungen
Routine | Erforderlicher C-Header | Erforderlicher C++-Header |
---|---|---|
gmtime_s , _gmtime32_s , _gmtime64_s |
<time.h> |
<ctime> oder <time.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_gmtime64_s.c
// This program uses _gmtime64_s to convert a 64-bit
// integer representation of coordinated universal time
// to a structure named newtime, then uses asctime_s to
// convert this structure to an output string.
#include <time.h>
#include <stdio.h>
int main( void )
{
struct tm newtime;
__int64 ltime;
char buf[26];
errno_t err;
_time64( <ime );
// Obtain coordinated universal time:
err = _gmtime64_s( &newtime, <ime );
if (err)
{
printf("Invalid Argument to _gmtime64_s.");
}
// Convert to an ASCII representation
err = asctime_s(buf, 26, &newtime);
if (err)
{
printf("Invalid Argument to asctime_s.");
}
printf( "Coordinated universal time is %s\n",
buf );
}
Coordinated universal time is Fri Apr 25 20:12:33 2003
Siehe auch
Zeitverwaltung
asctime_s
, _wasctime_s
ctime
, _ctime32
, _ctime64
, _wctime
, _wctime32
, _wctime64
_ftime
, _ftime32
, _ftime64
gmtime
, _gmtime32
, _gmtime64
localtime_s
, _localtime32_s
, _localtime64_s
_mkgmtime
, _mkgmtime32
, _mkgmtime64
mktime
, _mktime32
, _mktime64
time
, _time32
, _time64