Epoch-tijd converteren in C++

De tijdfunctie in de standaardbibliotheek van C++ retourneert seconden die zijn verstreken sinds een specifieke, gestandaardiseerde datum en tijd die bekend staat als het tijdperk. Hoewel deze waarde alle informatie bevat die nodig is om de huidige tijd en datum van het systeem te berekenen, is het schrijven van uw eigen epoche-tijdvertaalcode foutgevoelig. Het gebruik van de tijdconversiefuncties van de standaardbibliotheek maakt dit vertaalproces triviaal, zodat u zich kunt concentreren op de meer complexe delen van uw toepassing.

Stap 1

Neem de tijdfunctionaliteit van de C++-standaardbibliotheek op in uw toepassing. Voeg de volgende regel toe aan de bovenkant van uw lijst met opnemen:

omvatten

Stap 2

Verkrijg de seconden die zijn verstreken sinds het tijdperk en sla deze lokaal op. Doe dit door time() aan te roepen en het resultaat op te slaan in een object van het type time_t. De tijdfunctie accepteert ook een aanwijzer naar een object van het type time_t als argument, maar het is eenvoudiger om dit object lokaal op de stapel op te slaan:

time_t timeSinceEpoch = tijd (NULL);

Stap 3

Maak een tijdstructuur om het resultaat van de tijdconversie op te slaan. Deze structuur is gedefinieerd in het time.h-headerbestand als een structuur met de naam tm, en biedt lidvariabelen met een handige naam voor elk onderdeel van de geconverteerde tijd:

tm tijdResultaat;

Gebruik een van de ingebouwde conversiefuncties om de eerder verkregen time_t-waarde op te slaan als een tm-structuur. Voor de eenvoud converteert de volgende code een time_t-object naar een UTC tm-structuur:

timeResult = gmtime( &timeSinceEpoch);