gmtime_s
, _gmtime32_s
, _gmtime64_s
Converte un valore di ora in una tm
struttura. Queste funzioni sono versioni di , _gmtime64
con miglioramenti della_gmtime32
sicurezza, come descritto in Funzionalità di sicurezza in CRT.
Sintassi
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
);
Parametri
tmDest
Puntatore a una struttura tm
. I campi della struttura restituita contengono il valore valutato dell'argomento timer
in formato UTC anziché nell'ora locale.
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
Zero in caso di esito positivo. Il valore restituito è un codice di errore in caso di errore. I codici di errore sono definiti in Errno.h
. Per un elenco di questi errori, vedere errno
.
Condizioni di errore
tmDest |
sourceTime |
Restituzione | Valore in tmDest |
---|---|---|---|
NULL |
qualsiasi | EINVAL |
Non modificato. |
Non NULL (punta alla memoria valida) |
NULL |
EINVAL |
Tutti i campi impostati su -1. |
Not NULL |
< 0 | EINVAL |
Tutti i campi impostati su -1. |
Le prime due condizioni di errore richiamano il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, queste funzioni impostano errno
su EINVAL
e restituiscono EINVAL
.
Osservazioni:
La _gmtime32_s
funzione suddivide il sourceTime
valore e la archivia in una struttura di tipo tm
, definita in Time.h
. L'indirizzo della struttura viene passato in tmDest
. Il valore di sourceTime
viene spesso ottenuto da una chiamata alla time
funzione .
Ognuno dei campi della struttura è di tipo int
, come mostrato nella tabella seguente.
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_s . |
_gmtime64_s
, che usa la struttura __time64_t
, consente di esprimere le date fino alle 23.59.59 del 31 dicembre 3000 UTC, mentre gmtime32_s
rappresenta 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 queste funzioni.
gmtime_s
è una funzione inline equivalente a _gmtime64_s
e time_t
è equivalente a __time64_t
. Se è necessario forzare il compilatore in modo che interpreti time_t
come il vecchio time_t
a 32 bit, è possibile definire _USE_32BIT_TIME_T
. _USE_32BIT_TIME_T
gmtime_s
causa l'inlining come _gmtime32_s
. Non è consigliabile _USE_32BIT_TIME_T
, perché l'applicazione potrebbe non riuscire dopo il 18 gennaio 2038 e perché non è consentita nelle piattaforme a 64 bit.
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_s , _gmtime32_s , _gmtime64_s |
<time.h> |
<ctime> oppure <time.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
// 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
Vedi anche
Gestione orari
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