Sdílet prostřednictvím


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( &ltime );

   // Obtain coordinated universal time:
   err = _gmtime64_s( &newtime, &ltime );
   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