gmtime_s, _gmtime32_s, _gmtime64_s
Konvertiert einen Zeitwert in eine Struktur. Diese Versionen sind von _gmtime32, _gmtime64 mit werden, wie in Sicherheitsfunktionen in der CRT beschrieben.
errno_t gmtime_s(
struct tm* _tm,
const __time_t* time
);
errno_t _gmtime32_s(
struct tm* _tm,
const __time32_t* time
);
errno_t _gmtime64_s(
struct tm* _tm,
const __time64_t* time
);
Parameter
_tm
Zeiger an 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.time
Zeiger zu gespeicherten 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, wenn ein Fehler auftritt. Fehlercodes werden in Errno.h definiert; für Listen, dieser Fehler finden Sie unter errno.
Fehlerbedingungen
_tm |
time |
Return |
Wert in _tm |
---|---|---|---|
NULL |
any |
EINVAL |
Nicht geändert. |
Nicht NULL (Punkte zum gültigen Arbeitsspeicher) |
NULL |
EINVAL |
Nun fängt Satz bis -1 auf. |
Nicht NULL |
< 0 |
EINVAL |
Nun fängt Satz bis -1 auf. |
Bei der ersten zwei Fehlerzustände wird der ungültige Parameterhandler 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 weist den Wert time auf und speichert ihn in einer Struktur des Typs tm, die in Time.h. Die Adresse der Struktur wird in _tm übergeben. Der Wert time wird normalerweise von einem Aufruf der Funktion time abrufen.
Hinweis
Die Zielumgebung sollte versuchen, zu bestimmen, ob Sommerzeit wirksam ist.Die C-Laufzeitbibliothek weist die USAregeln zum Implementieren der Berechnung der Sommerzeit an.
Jedes der Strukturfelder ist vom Typ int, wie in der folgenden Tabelle.
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.
_gmtime64_s, die die __time64_t-Struktur verwendet, unterstützt von 23:59 die oben ausgedrückt werden Datumsangaben: 59 3000 am 31. Dezember, UTC; während gmtime32_s nur Datumsangaben von 03:14 darstellen: Am 7. Januar 19 2038, UTC. Mitternacht am 1. Januar 1970 ist die untere Begrenzung des Zeitraums für beide die Funktionen.
gmtime_s ist eine Inlinefunktion, die _gmtime64_s ergibt und time_t in __time64_t entspricht. Wenn Sie dem Compiler erzwingen müssen, um time_t als 32-Bit- alte time_t interpretiert, können Sie _USE_32BIT_TIME_T definieren. Hierdurch wird gmtime_s, _gmtime32_s in-gesäumt zu sein. Dies ist nicht empfehlenswert, da Ihre Anwendung möglicherweise nach dem 18. Januar 2038 fehlschlägt, und nicht auf 64-Bit-Plattformen zulässig.
Anforderungen
Routine |
Erforderlicher Header |
---|---|
gmtime_s |
<time.h> |
_gmtime32_s |
<time.h> |
_gmtime64_s |
<time.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.
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 );
}
.NET Framework-Entsprechung
Siehe auch
Referenz
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
localtime_s, _localtime32_s, _localtime64_s