Condividi tramite


gmtime, _gmtime32, _gmtime64

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

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

Parametri

  • timer
    Puntatore al valore temporale archiviato. Il tempo viene rappresentato come i secondi trascorsi dopo la mezzanotte (00:00:00) del 1° Gennaio 1970, formato UTC (Universal Coordinated Time).

Valore restituito

Un puntatore ad una struttura di tipo tm. I campi della struttura restituita contengono il valore valutato in formato UTC, dell'argomento timer anziché l'ora locale. Ognuno dei campi della struttura è di tipo int, come segue:

  • tm_sec
    Secondi dopo un minuto (0 – 59).

  • tm_min
    Minuti dopo un'ora (0 – 59).

  • tm_hour
    Ore da 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; Gennaio 1 = 0).

  • tm_isdst
    Sempre 0 per il campo gmtime.

Sia le versioni a 32 bit che a 64 bit di gmtime, mktime, mkgmtime e localtime utilizzano una struttura tm per ogni thread utilizzata per la conversione. Ogni chiamata ad una di queste funzioni elimina qualsiasi risultato di una chiamata precedente. Se timer rappresenta una data prima della mezzanotte del 1° Gennaio 1970, gmtime restituisce NULL. Nessun ritorno di errore.

_gmtime64, che utilizza la struttura __time64_t consente di esprimere date fino alle 23:59:59 del 31 dicembre 3000, nel formato UTC, mentre _gmtime32 rappresenta solo date fino alle 03:14:07 del 19 Gennaio 2038, nel formato UTC. Per entrambe queste funzioni, la mezzanotte, del 1° Gennaio 1970, è il limite inferiore dell'intervallo di date.

gmtime è una funzione inline che dà come risultato _gmtime64 e time_t è equivalente a __time64_t a meno che _USE_32BIT_TIME_T sia definito. Se è necessario forzare il compilatore ad interpretare time_t come il valore obsoleto a 32 bit time_t, è possibile definire _USE_32BIT_TIME_T, ma questo comporta che gmtime deve essere in linea con _gmtime32 e time_t viene definito come __time32_t. È consigliabile evitare questo, poiché non è consentito nelle piattaforme a 64 bit in ogni caso l'applicazione potrebbe non superare il 18 Gennaio 2038.

Queste funzioni convalidano i parametri. Se timer è un puntatore null, oppure se il valore temporale è negativo, queste funzioni richiamano un gestore di parametro non valido, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, la funzione restituisce NULL e imposta errno su EINVAL.

Note

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

Nota

Nella maggior parte dei casi, l'ambiente di destinazione tenta di determinare se l'ora legale è in vigore.La libreria di runtime C utilizza queste direttive degli Stati Uniti per implementare il calcolo dell'ora legale (DST).

Requisiti

Routine

Intestazione obbligatoria

gmtime

<time.h>

_gmtime32

<time.h>

_gmtime64

<time.h>

Per ulteriori informazioni sulla compatibilità, vedere 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 );
}
  

Equivalente .NET Framework

Vedere anche

Riferimenti

Gestione del tempo

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