Come convertire Epoch Time in C++

La funzione time nella libreria standard C++ restituisce i secondi trascorsi da una data e un'ora standardizzate specifiche note come epoch. Sebbene questo valore contenga tutte le informazioni necessarie per calcolare l'ora e la data correnti del sistema, scrivere il proprio codice di conversione dell'ora dell'epoca è soggetto a errori. L'utilizzo delle funzioni di conversione dell'ora fornite dalla libreria standard rende questo processo di traduzione banale, consentendoti di concentrarti sulle parti più complesse della tua applicazione.

Passo 1

Includere la funzionalità dell'ora della libreria standard C++ nella tua applicazione. Aggiungi la seguente riga all'inizio dell'elenco di inclusione:

includere

Passo 2

Ottenere i secondi trascorsi dall'epoca e memorizzarli localmente. Fallo chiamando time() e memorizzando il risultato in un oggetto di tipo time_t. La funzione time accetta anche un puntatore a un oggetto di tipo time_t come argomento, ma è più semplice memorizzare questo oggetto localmente nello stack:

time_t timeSinceEpoch = time(NULL);

Passaggio 3

Creare una struttura temporale per memorizzare il risultato della conversione dell'ora. Questa struttura è definita nel file di intestazione time.h come una struttura denominata tm e fornisce variabili membro opportunamente denominate per ogni componente dell'ora convertita:

tm timeResult;

Utilizzare una delle funzioni di conversione integrate per memorizzare il valore time_t ottenuto in precedenza come struttura tm. Per semplicità, il codice seguente converte un oggetto time_t in una struttura UTC tm:

timeResult = gmtime( &timeSinceEpoch );