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( <ime );
// Obtain coordinated universal time:
newtime = _gmtime64( <ime ); // 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
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
gmtime_s, _gmtime32_s, _gmtime64_s
localtime, _localtime32, _localtime64