C++ Datum & Uhrzeit

Die C++-Standardbibliothek stellt keinen sogenannten Datumstyp bereit. C++ erbt die Strukturen und Funktionen für Datums- und Zeitoperationen aus der Sprache C. Um datums- und zeitbezogene Funktionen und Strukturen zu verwenden, müssen Sie in einem C++-Programm die Header-Datei <ctime> einbinden.

Es gibt vier zeitbezogene Typen:clock_t、time_t、size_tundtmDie Typen clock_t, size_t und time_t können die Systemzeit und das Datum als eine Art Ganzzahl darstellen.

StrukturtyptmDatum und Uhrzeit werden in Form einer C-Struktur gespeichert. Die tm-Struktur ist wie folgt definiert:

struct tm { int tm_sec; // Sekunden, normaler Bereich 0 bis 59, aber bis zu 61 erlaubt int tm_min; // Minuten, Bereich 0 bis 59 int tm_hour; // Stunden, Bereich 0 bis 23 int tm_mday; // Tag des Monats, Bereich 1 bis 31 int tm_mon; // Monat, Bereich 0 bis 11 int tm_year; // Jahre seit 1900 int tm_wday; // Wochentag, Bereich 0 bis 6, beginnend mit Sonntag int tm_yday; // Tag des Jahres, Bereich 0 bis 365, beginnend mit dem 1. Januar int tm_isdst; // Sommerzeit };

Nachfolgend finden Sie die wichtigen Funktionen für Datum und Uhrzeit in C/C++. Alle diese Funktionen sind Teil der C/C++-Standardbibliothek. Details zu jeder Funktion können Sie in der C++-Standardbibliothek nachschlagen.

Laufende NummerFunktionen & Beschreibung
1time_t time(time_t *time);
Diese Funktion gibt die aktuelle Kalenderzeit des Systems zurück, also die Anzahl der Sekunden, die seit dem 1. Januar 1970 vergangen sind. Wenn das System keine Zeit hat, gibt sie -1 zurück.
2char *ctime(const time_t *time);
Diese Funktion gibt einen Zeiger auf eine Zeichenkette zurück, deren Inhalt die lokale Zeit im folgenden Format darstellt:
Www Mmm dd hh:mm:ss yyyy\n\0

Wobei:

  • Www: Wochentag (z. B. Tue)
  • Mmm: Monat (z. B. Jul)
  • dd: Tag (z. B. 29)
  • hh:mm:ss: Uhrzeit (24-Stunden-Format)
  • yyyy: Jahr (z. B. 2025)
  • Endet mit einem Zeilenumbruchzeichen\nund Terminator\0

Beispielrückgabewert:

"Tue Jul 29 19:12:15 2025\n\0"
3struct tm *localtime(const time_t *time);
Diese Funktion gibt einen Zeiger auf eine Struktur zurück, die die lokale Zeit darstellt.tmZeiger auf die Struktur.
4clock_t clock(void);
Diese Funktion gibt die Prozessorzeit zurück, die seit Beginn der Programmausführung verwendet wurde (normalerweise der Beginn des Programms). Wenn die Zeit nicht verfügbar ist, gibt sie -1 zurück.
5char * asctime ( const struct tm * time );
Diese Funktion gibt einen Zeiger auf eine Zeichenkette zurück. Die Zeichenkette enthält die Informationen, die in der Struktur gespeichert sind, auf die time zeigt. Das Rückgabeformat ist: Tag Monat Datum Stunden:Minuten:Sekunden Jahr\n\0.
6struct tm *gmtime(const time_t *time);
Diese Funktion gibt einen Zeiger auf time zurück, wobei time eine tm-Struktur ist, ausgedrückt in Coordinated Universal Time (UTC), auch bekannt als Greenwich Mean Time (GMT).
7time_t mktime(struct tm *time);
Diese Funktion gibt die Kalenderzeit zurück, die der Zeit entspricht, die in der Struktur gespeichert ist, auf die time zeigt.
8double difftime ( time_t time2, time_t time1 );
Diese Funktion gibt die Differenz in Sekunden zwischen time1 und time2 zurück.
9size_t strftime();
Diese Funktion kann verwendet werden, um Datums- und Zeitangaben in ein bestimmtes Format zu formatieren.

Aktuelles Datum und aktuelle Uhrzeit

Das folgende Beispiel ruft das aktuelle Systemdatum und die aktuelle Systemzeit ab, einschließlich lokaler Zeit und koordinierter Weltzeit (UTC).

Beispiel

#include <iostream> #include <ctime> using namespace std; int main( ) { // Aktuelles Datum/Uhrzeit basierend auf aktuellem System time_t now = time(0); // now in Zeichenkettenform umwandeln char* dt = ctime(&now); cout << "Lokales Datum und lokale Uhrzeit:" << dt << endl; // now in eine tm-Struktur umwandeln tm *gmtm = gmtime(&now); dt = asctime(gmtm); cout << "UTC-Datum und -Uhrzeit:"<< dt << endl; }

Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:

本地日期和时间:Sat Jan  8 20:07:41 2011

UTC 日期和时间:Sun Jan  9 03:07:41 2011

Formatieren von Zeit mit der tm-Struktur

tmDie Struktur ist besonders wichtig beim Umgang mit Datums- und Zeitoperationen in C/C++. Die tm-Struktur speichert Datum und Uhrzeit in Form einer C-Struktur. Die meisten zeitbezogenen Funktionen verwenden die tm-Struktur. Das folgende Beispiel verwendet die tm-Struktur und verschiedene datums- und zeitbezogene Funktionen.

Bevor Sie die Verwendung von Strukturen üben, benötigen Sie ein grundlegendes Verständnis von C-Strukturen und sollten wissen, wie Sie den Pfeil-Operator -> verwenden, um auf Strukturmitglieder zuzugreifen.

Beispiel

#include <iostream> #include <ctime> using namespace std; int main( ) { // Aktuelles Datum/Uhrzeit basierend auf aktuellem System time_t now = time(0); cout << "Seit 1970 vergangene Sekunden:" << now << endl; tm *ltm = localtime(&now); // Komponenten der tm-Struktur ausgeben cout << "Jahr:"<< 1900 + ltm->tm_year << endl; cout << "Monat:"<< 1 + ltm->tm_mon<< endl; cout << "Tag:"<< ltm->tm_mday << endl; cout << "Zeit:"<< ltm->tm_hour << ":"; cout << ltm->tm_min << ":"; cout << ltm->tm_sec << endl; }

Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:

1970 到目前时间:1503564157
年: 2017
月: 8
日: 24
时间: 16:42:37
Weitere Erweiterungen