gmtime_s
, , _gmtime32_s
_gmtime64_s
Převede časovou hodnotu na tm
strukturu. Tyto funkce jsou verze _gmtime32
, _gmtime64
s vylepšeními zabezpečení, jak je popsáno v funkcích zabezpečení v CRT.
Syntaxe
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
);
Parametry
tmDest
Ukazatel na tm
strukturu Pole vrácené struktury obsahují vyhodnocenou hodnotu argumentu timer
v UTC, nikoli v místním čase.
sourceTime
Ukazatel na uložený čas. Čas je reprezentován jako sekundy uplynulé od půlnoci (00:00:00), 1. ledna 1970, koordinovaný univerzální čas (UTC).
Vrácená hodnota
Nula v případě úspěchu. Vrácená hodnota je kód chyby, pokud dojde k selhání. Kódy chyb jsou definovány v Errno.h
; seznam těchto chyb naleznete v tématu errno
.
Chybové podmínky
tmDest |
sourceTime |
Zpět | Hodnota v tmDest |
---|---|---|---|
NULL |
jakékoliv | EINVAL |
Není změněno. |
Not NULL (odkazuje na platnou paměť) |
NULL |
EINVAL |
Všechna pole nastavená na -1. |
Ne NULL |
< 0 | EINVAL |
Všechna pole nastavená na -1. |
První dvě chybové podmínky vyvolávají neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru. Pokud provádění může pokračovat, tyto funkce jsou nastaveny errno
na EINVAL
a vracet EINVAL
.
Poznámky
Funkce _gmtime32_s
rozdělí sourceTime
hodnotu a uloží ji do struktury typu tm
, definované v Time.h
. Adresa struktury je předána .tmDest
Hodnota sourceTime
je často získána z volání time
funkce.
Každé pole struktury je typu int
, jak je znázorněno v následující tabulce.
Pole | Popis |
---|---|
tm_sec |
Sekundy po minutě (0 – 59). |
tm_min |
Minuty po hodině (0 – 59). |
tm_hour |
Hodiny od půlnoci (0 - 23). |
tm_mday |
Den v měsíci (1 – 31). |
tm_mon |
Měsíc (0 – 11; Leden = 0). |
tm_year |
Rok (aktuální rok minus 1900). |
tm_wday |
Den v týdnu (0 - 6; Neděle = 0). |
tm_yday |
Den roku (0 – 365; 1. ledna = 0). |
tm_isdst |
Vždy 0 pro gmtime_s . |
_gmtime64_s
, který používá __time64_t
strukturu, umožňuje vyjádřit data do 23:59:59, 31. prosince 3000 UTC; zatímco gmtime32_s
představují pouze data do 23:59:59 18, 2038 UTC. Půlnoc, leden 1, 1970, je dolní mez rozsahu dat pro obě tyto funkce.
gmtime_s
je vložená funkce, která se vyhodnocuje _gmtime64_s
a time_t
je ekvivalentní __time64_t
. Pokud potřebujete vynutit, aby kompilátor interpretoval time_t
jako starý 32bitový time_t
, můžete definovat _USE_32BIT_TIME_T
. _USE_32BIT_TIME_T
inlinovat gmtime_s
jako _gmtime32_s
. Nedoporučujeme _USE_32BIT_TIME_T
, protože vaše aplikace může selhat po 18. lednu 2038 a protože není povolená na 64bitových platformách.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Požadavky
Rutina | Požadovaná hlavička jazyka C | Požadovaná hlavička C++ |
---|---|---|
gmtime_s , , _gmtime32_s _gmtime64_s |
<time.h> |
<ctime> nebo <time.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
// 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
Viz také
Správa času
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