Hur man konverterar epoktid i C ++

Tidsfunktionen i C ++ - standardbiblioteket returnerar förflutna sekunder sedan ett specifikt, standardiserat datum och tid som kallas epoken. Även om detta värde innehåller all information som behövs för att beräkna den aktuella tiden och datumet för systemet, är det felat att skriva din egen tidskod för översättningstid. Genom att använda standardbibliotekets tillhandahållna tidsomvandlingsfunktioner blir denna översättningsprocess trivial, så att du kan fokusera på de mer komplexa delarna av din applikation.

Steg 1

Inkludera C ++ - standardbibliotekets tidsfunktionalitet i din applikation. Lägg till följande rad högst upp i listan över inkludera:

omfatta

Steg 2

Skaffa de sekunder som har gått sedan epoken och förvara den lokalt. Gör detta genom att anropa time () och lagra resultatet i ett objekt av typen time_t. Tidsfunktionen accepterar också en pekare till ett objekt av typen time_t som ett argument, men det är enklare att lagra detta objekt lokalt på stacken:

time_t timeSinceEpoch = tid (NULL);

Steg 3

Skapa en tidsstruktur för att lagra resultatet av tidsomvandlingen. Denna struktur definieras i time.h-rubrikfilen som en struktur med namnet tm och ger bekvämt namngivna medlemsvariabler för varje komponent i den konverterade tiden:

tm timeResult;

Använd en av de inbyggda omvandlingsfunktionerna för att lagra det tid_t-värde som erhållits tidigare som en tm-struktur. För enkelhetens skull konverterar följande kod ett time_t-objekt till en UTC tm-struktur:

timeResult = gmtime (& timeSinceEpoch);