So konvertieren Sie die Epochenzeit in C++

Die Zeitfunktion in der C++-Standardbibliothek gibt Sekunden zurück, die seit einem bestimmten, standardisierten Datum und einer bestimmten Uhrzeit, der sogenannten Epoche, verstrichen sind. Während dieser Wert alle Informationen enthält, die zum Berechnen der aktuellen Uhrzeit und des aktuellen Datums des Systems erforderlich sind, ist das Schreiben Ihres eigenen Epochenzeit-Übersetzungscodes fehleranfällig. Die Verwendung der bereitgestellten Zeitkonvertierungsfunktionen der Standardbibliothek macht diesen Übersetzungsprozess trivial, sodass Sie sich auf die komplexeren Teile Ihrer Anwendung konzentrieren können.

Schritt 1

Binden Sie die Zeitfunktionalität der C++-Standardbibliothek in Ihre Anwendung ein. Fügen Sie die folgende Zeile oben in Ihre Include-Liste ein:

einschließen

Schritt 2

Rufen Sie die seit der Epoche verstrichenen Sekunden ab und speichern Sie sie lokal. Rufen Sie dazu time() auf und speichern Sie das Ergebnis in einem Objekt vom Typ time_t. Die time-Funktion akzeptiert auch einen Zeiger auf ein Objekt vom Typ time_t als Argument, aber es ist einfacher, dieses Objekt lokal auf dem Stack zu speichern:

time_t timeSinceEpoch = time(NULL);

Schritt 3

Erstellen Sie eine Zeitstruktur, um das Ergebnis der Zeitumrechnung zu speichern. Diese Struktur ist in der Header-Datei time.h als Struktur mit dem Namen tm definiert und bietet bequem benannte Member-Variablen für jede Komponente der konvertierten Zeit:

tm timeResult;

Verwenden Sie eine der integrierten Konvertierungsfunktionen, um den zuvor erhaltenen time_t-Wert als tm-Struktur zu speichern. Der Einfachheit halber konvertiert der folgende Code ein time_t-Objekt in eine UTC-tm-Struktur:

timeResult = gmtime( &timeSinceEpoch );