gmtime, _gmtime32, _gmtime64

Konvertiert einen time_t-Zeitwert in eine tm-Struktur. Sicherere Versionen dieser Funktionen sind verfügbar. Informationen dazu finden Sie unter gmtime_s, _gmtime32_s, _gmtime64_s.

Syntax

struct tm *gmtime( const time_t *sourceTime );
struct tm *_gmtime32( const __time32_t *sourceTime );
struct tm *_gmtime64( const __time64_t *sourceTime );

Parameter

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

Ein Zeiger auf eine Struktur des Typs tm. Die Felder der zurückgegebenen Struktur enthalten den ausgewerteten Wert des sourceTime-Arguments im UTC-Format. Die Angabe erfolgt nicht in Ortszeit. Jedes dieser Strukturfelder ist wie folgt vom Typ int:

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 immer 0.

Sowohl die 32-Bit- als auch die 64-Bit-Versionen von gmtime, mktime, mkgmtime und localtime nutzen für die Konvertierung pro Thread eine gemeinsame tm-Struktur. Jeder Aufruf dieser Funktionen zerstört das Ergebnis des vorherigen Aufrufs. Wenn sourceTime ein Datum vor Mitternacht (1. Januar 1970) darstellt, gibt gmtimeNULL zurück. Es gibt keine Fehlerrückgabe.

_gmtime64, die die __time64_t-Struktur verwendet, ermöglicht die Angabe von Datumsangaben bis 23:59:59, 31. Dezember 3000, UTC. _gmtime32 zeigen nur Daten bis 23:59:59, 18. Januar 2038, UTC an. Der 1. Januar 1970 (Mitternacht) ist der untere Datumsbereich für beide Funktionen.

gmtime ist eine Inlinefunktion, die _gmtime64 auswertet, und time_t entspricht __time64_t, sofern nicht, _USE_32BIT_TIME_T definiert ist. Wenn Sie den Compiler zwingen müssen, time_t das alte 32-Bit-time_t zu interpretieren, können Sie _USE_32BIT_TIME_T definieren. Dies führt jedoch dazu, dass gmtime in _gmtime32 eingebunden wird und dass time_t als __time32_t definiert wird. Die Verwendung von _USE_32BIT_TIME_T wird nicht empfohlen, da sie auf 64-Bit-Plattformen nicht zulässig ist. In jedem Fall kann Ihre Anwendung nach dem 18. Januar 2038 fehlschlagen.

Diese Funktionen überprüfen ihre Parameter. Wenn sourceTime ein NULL-Zeiger oder der Wert sourceTime negativ ist, rufen diese Funktionen den Handler für ungültige Parameter auf, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt diese Funktion NULL zurück und setzt errno auf EINVAL.

Hinweise

Die _gmtime32-Funktion gliedert den sourceTime-Wert und speichert diesen in eine statistisch zugeordnete Struktur vom Typ tm, die in TIME.H definiert ist. Der Wert von sourceTime wird in der Regel durch einen Aufruf der time-Funktion abgerufen.

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, _gmtime32, _gmtime64 <time.h> <ctime> oder <time.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// crt_gmtime.c
// compile with: /W3
// This program uses _gmtime64 to convert a long-
// integer representation of coordinated universal time
// to a structure named newtime, then uses asctime to
// convert this structure to an output string.

#include <time.h>
#include <stdio.h>

int main(void)
{
   struct tm *newtime;
   __int64 ltime;
   char buff[80];

   _time64( &ltime );

   // Obtain coordinated universal time:
   newtime = _gmtime64( &ltime ); // C4996
   // Note: _gmtime64 is deprecated; consider using _gmtime64_s
   asctime_s( buff, sizeof(buff), newtime );
   printf( "Coordinated universal time is %s\n", buff );
}
Coordinated universal time is Tue Feb 12 23:11:31 2002

Siehe auch

Zeitverwaltung
asctime, _wasctime
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_ftime, _ftime32, _ftime64
gmtime_s, _gmtime32_s, _gmtime64_s
localtime, _localtime32, _localtime64
_mkgmtime, _mkgmtime32, _mkgmtime64
mktime, _mktime32, _mktime64
time, _time32, _time64