Slik konverterer Epoch Time in C ++

Slik konverterer Epoch Time in C ++


Tiden funksjonen i C ++ standard bibliotek returnerer sekunder gått siden en bestemt, standardisert dato og tid kjent som epoke. Mens denne verdien inneholder all nødvendig informasjon for å beregne gjeldende klokkeslett og dato for systemet, skrive din egen epoke tid oversettelse kode er feil utsatt. Bruke standard bibliotekets gitt konverteringsfunksjoner tid gjør denne oversettelsesprosessen trivielt, slik at du kan fokusere på de mer komplekse deler av søknaden din.

Bruksanvisning

1 Ta med C ++ standard bibliotek tid funksjonalitet inn i applikasjonen. Legg til følgende linje til toppen av inkluderer listen:

inkluderer <time.h>

2 Skaff sekunder gått siden epoke, og lagre den lokalt. Gjør dette ved å ringe tid (), og lagre resultatet til et objekt av type time_t. Tidsfunksjonen aksepterer også en peker til et objekt av typen time_t som et argument, men det er enklere å oppbevare dette formål lokalt på stabelen:

time_t timeSinceEpoch = tid (NULL);

3 Lag en tidsstruktur for å lagre resultatet av tid konvertering. Denne strukturen er definert i time.h header filen som en struktur kalt TM, og gir praktisk-navngitte medlem variabler for hver komponent i den konverterte tid:

TM timeResult;

4 Bruk en av de innebygde konverteringsfunksjoner for å lagre time_t verdien oppnådd tidligere som et tm struktur. For enkelhets skyld konverterer følgende kode en time_t objekt til en UTC tm struktur:

timeResult = gmtime (& timeSinceEpoch);

Hint

  • Standarden Biblioteket tilbyr også en funksjon kalt local som konverterer en time_t objekt til lokal tid, i stedet for til UTC-tid.
  • Det er flere funksjoner tilgjengelig for ytterligere konvertere en TM struktur inn i en lesbar streng, klar for utgang til brukeren.
  • Vær oppmerksom på epoken at datamaskinen er regnet fra, da dette kan påvirke utgangsverdi. De fleste datamaskiner telle fra 1 januar 1970.
  • Den maksimale nøyaktighet av koden ovenfor er ett sekund. For å få mer presise ganger med verdier på mindre enn ett sekund, må du bruke en annen metode,