gmtime, _gmtime32, _gmtime64

Converte un time_t valore di ora in una tm struttura. Sono disponibili versioni più sicure di queste funzioni; vedere gmtime_s, _gmtime32_s, _gmtime64_s.

Sintassi

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

Parametri

sourceTime
Puntatore all'ora archiviata. L'ora è rappresentata come secondi trascorsi dalla mezzanotte (00.00.00) del 1 gennaio 1970 nel formato UTC (Coordinated Universal Time).

Valore restituito

Puntatore a una struttura di tipo tm. I campi della struttura restituita contengono il valore valutato dell'argomento sourceTime in formato UTC anziché nell'ora locale. Ognuno dei campi della struttura è di tipo int, come segue:

Campo Descrizione
tm_sec Secondi dopo minuto (0 - 59).
tm_min Minuti dopo l'ora (0 - 59).
tm_hour Ore dalla mezzanotte (0 - 23).
tm_mday Giorno del mese (1 - 31).
tm_mon Mese (0 - 11; Gennaio = 0).
tm_year Anno (anno corrente meno 1900).
tm_wday Giorno della settimana (0 - 6; Domenica = 0).
tm_yday Giorno dell'anno (0 - 365; 1 gennaio = 0).
tm_isdst Sempre 0 per gmtime.

Entrambe le versioni a 32 bit e 64 bit di gmtime, mktime, mkgmtime e localtime usano una sola struttura tm comune per ogni thread per la conversione. Ogni chiamata a una di queste funzioni elimina il risultato di una chiamata precedente. Se sourceTime rappresenta una data precedente alla mezzanotte dell'1 gennaio 1970, gmtime restituisce NULL. Non viene restituito alcun errore.

_gmtime64, che usa la __time64_t struttura , consente di esprimere le date fino alle 23.59.59 del 31 dicembre 3000 UTC. _gmtime32 rappresentano solo le date fino alle 23.59.59 del 18 gennaio 2038, UTC. La mezzanotte del 1 gennaio 1970 è il limite inferiore dell'intervallo di date per entrambe le funzioni.

gmtime è una funzione inline equivalente a _gmtime64 e time_t è equivalente a __time64_t a meno che non sia definito _USE_32BIT_TIME_T. Se è necessario forzare il compilatore a interpretare time_t come la versione precedente di time_t a 32 bit, è possibile definire _USE_32BIT_TIME_T, ma in questo modo gmtime viene allineata a _gmtime32 e time_t deve essere definita come __time32_t. Non è consigliabile usare _USE_32BIT_TIME_T, perché non è consentito nelle piattaforme a 64 bit. In ogni caso, l'applicazione potrebbe non riuscire dopo il 18 gennaio 2038.

Queste funzioni convalidano i relativi parametri. Se sourceTime è un NULL puntatore o se il sourceTime valore è negativo, queste funzioni richiamano un gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, le funzioni restituiscono NULL e impostano errno su EINVAL.

Osservazioni:

La _gmtime32 funzione suddivide il sourceTime valore e lo archivia in una struttura allocata staticamente di tipo tm, definita in TIME.H. Il valore di sourceTime viene in genere ottenuto da una chiamata alla funzione time.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Requisiti

Ciclo Intestazione C obbligatoria Intestazione C++ obbligatoria
gmtime, _gmtime32, _gmtime64 <time.h> <ctime> oppure <time.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

// 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

Vedi anche

Gestione orari
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