Condividi tramite


gmtime_s, _gmtime32_s, _gmtime64_s

Converte un valore a una struttura.queste sono versioni di _gmtime32, _gmtime64 con i miglioramenti della sicurezza come descritto in Funzionalità di sicurezza in CRT.

errno_t gmtime_s(
   struct tm* _tm,
   const __time_t* time
);
errno_t _gmtime32_s(
   struct tm* _tm,
   const __time32_t* time
);
errno_t _gmtime64_s(
   struct tm* _tm,
   const __time64_t* time 
);

Parametri

  • _tm
    Puntatore a un oggetto tm struttura.I campi della struttura restituita utilizzano il valore restituito di timer argomento in UTC anziché in fase l'ora locale.

  • time
    puntatore a tempo archiviato.Il tempo viene rappresentato come secondi trascorsi dalla mezzanotte (00:00: 00), il 1° gennaio 1970, formato UTC (UTC).

Valore restituito

Zero se ha esito positivo.Il valore restituito è un codice di errore se c " è un errore.I codici di errore definiti in Errno.h; per un elenco di questi errori, vedere errno.

condizioni di errore

_tm

time

Return

Valore in _tm

NULL

qualsiasi

EINVAL

non modificato.

non NULL (punta alla memoria valida)

NULL

EINVAL

Tutti i campi impostati su -1.

non NULL

< 0

EINVAL

Tutti i campi impostati su -1.

Nel caso delle prime due condizioni di errore, il gestore non valido di parametro viene richiamato, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, queste funzioni impostate errno in EINVAL e restituiscono EINVAL.

Note

_gmtime32_s la funzione riparte time stimare e archiviarli in una struttura di tipo tm, definito in Time.h.L'indirizzo della struttura viene passato _tm.il valore di time in genere viene ottenuto da una chiamata a time funzione.

[!NOTA]

L'ambiente di destinazione deve tentare di determinare se viene tenuto conto dell'ora legale è attiva.La libreria di runtime C presuppone le regole degli Stati Uniti per implementare il calcolo dell'ora legale.

Ognuno dei campi della struttura è di tipo int, come illustrato nella tabella seguente.

  • tm_sec
    Secondi dopo il minuto (da 0 a 59).

  • tm_min
    Rapporto dopo l'ora (da 0 a 59).

  • tm_hour
    Ore da mezzanotte (da 0 a 23).

  • tm_mday
    Giorno del mese (da 1 a 31).

  • tm_mon
    Mese (da 0 a 11; gennaio = 0).

  • tm_year
    Anno (anno corrente meno 1900).

  • tm_wday
    Giorno della settimana (da 0 a 6; domenica = 0).

  • tm_yday
    Giorno dell'anno (da 0 a 365; 1° gennaio = 0).

  • tm_isdst
    sempre 0 per gmtime.

_gmtime64_s, che utilizza __time64_t la struttura, vengono concesse le date da esprimere su con il 23:59: 59, il 31 dicembre, 3000, UTC, mentre gmtime32_s rappresentare solo date con il 03:14: 7 gennaio 19, 2038, UTC.La mezzanotte, il 1° gennaio 1970, è il limite inferiore dell'intervallo di date per entrambe queste funzioni.

gmtime_s è una funzione inline che restituisce _gmtime64_s e time_t equivale a __time64_t.Se è necessario che il compilatore per interpretare time_t come il 32 bit obsoleto time_t, è possibile definire _USE_32BIT_TIME_T.Questa operazione provocherà gmtime_s per essere foderato in un oggetto _gmtime32_s.Questa operazione non è consigliabile perché l'applicazione può non riuscire dopo il 18 gennaio 2038 e non è consentita sulle piattaforme a 64 bit.

Requisiti

routine

Intestazione di associazione

gmtime_s

<time.h>

_gmtime32_s

<time.h>

_gmtime64_s

<time.h>

Per ulteriori informazioni sulla compatibilità, vedere compatibilità nell'introduzione.

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

Equivalente .NET Framework

Vedere anche

Riferimenti

Gestione di tempo

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