Übersetzung: Deutsch
C++ Datum und Uhrzeit: Ein Anfänger-Leitfaden
Hallo daar, zukünftige C++ Zauberer! Heute werden wir eine aufregende Reise durch die Welt der Daten und Zeiten in C++ antreten. Keine Sorge, wenn du noch nie einen Codezeile geschrieben hast – ich werde hier bei dir sein, alles Schritt für Schritt zu erklären. Also, nimm dein Lieblingsgetränk, mache dich komfortabel und lasst uns einsteigen!
Die Grundlagen verstehen
Bevor wir mit der Manipulation von Daten und Zeiten beginnen, ist es entscheidend zu verstehen, dass C++ kein eingebautes Datumsformat hat. Stattdessen verwendet es den time_t
-Datentyp, um Zeit darzustellen. Das mag etwas seltsam klingen, aber denke daran, dass es eine große Zahl ist, die die Anzahl der Sekunden darstellt, die seit dem 1. Januar 1970 vergangen sind. Dieses Datum wird oft in der Informatik als "Epoche" bezeichnet – es ist wie der Geburtstag der modernen Datenverarbeitung!
Aktuelles Datum und Uhrzeit
Lassen Sie uns mit etwas Einfachem, aber Mächtigem beginnen – der aktuelle Zeit und Datum abzurufen. So geht das:
#include <iostream>
#include <ctime>
int main() {
time_t jetzt = time(0);
std::cout << "Aktuelle Zeit: " << jetzt << std::endl;
return 0;
}
Lassen Sie uns das aufbrechen:
- Wir inkludieren zwei wichtige Header:
<iostream>
für Eingabe/Ausgabebetriebe und<ctime>
für zeitaufgelöste Funktionen. - In der
main()
-Funktion verwenden wirtime(0)
, um die aktuelle Zeit abzurufen. - Wir speichern diese Zeit in einer
time_t
-Variablen namensjetzt
. - Schließlich geben wir diesen Wert aus.
Wenn Sie dieses Programm ausführen, sehen Sie eine große Zahl angezeigt. Das ist die Anzahl der Sekunden seit der Epoche. Nicht sehr lesbar für Menschen, oder? Keine Sorge, wir werden das bald reparieren!
time_t in eine Zeichenkette umwandeln
Jetzt machen wir unsere Ausgabe lesbarer:
#include <iostream>
#include <ctime>
int main() {
time_t jetzt = time(0);
char* dt = ctime(&jetzt);
std::cout << "Die lokale Datum und Uhrzeit ist: " << dt << std::endl;
return 0;
}
Hier ist das Neue:
- Wir verwenden die
ctime()
-Funktion, um unserentime_t
-Wert in eine Zeichenkette umzuwandeln. - Diese Zeichenkette wird in
dt
gespeichert. - Wir geben diese Zeichenkette aus, was uns ein lesbares Datum und eine Uhrzeit gibt.
Vielmehr besser, nicht wahr? Sie sollten etwas wie "Die lokale Datum und Uhrzeit ist: Di Jun 22 15:30:45 2023" sehen.
Zeit formatieren mit struct tm
Während ctime()
bequem ist, brauchen wir manchmal mehr Kontrolle über unser Datum und Uhrzeit-Format. Hier kommt struct tm
ins Spiel. Es ist eine Struktur, die die Zeit in ihre Komponenten aufteilt (Jahr, Monat, Tag, Stunde usw.).
Sehen wir uns an, wie man es verwendet:
#include <iostream>
#include <ctime>
int main() {
time_t jetzt = time(0);
tm *ltm = localtime(&jetzt);
std::cout << "Jahr: " << 1900 + ltm->tm_year << std::endl;
std::cout << "Monat: " << 1 + ltm->tm_mon << std::endl;
std::cout << "Tag: " << ltm->tm_mday << std::endl;
std::cout << "Uhrzeit: " << ltm->tm_hour << ":";
std::cout << ltm->tm_min << ":";
std::cout << ltm->tm_sec << std::endl;
return 0;
}
Lassen Sie uns das aufbrechen:
- Wir verwenden
localtime()
, um unserentime_t
-Wert in einetm
-Struktur umzuwandeln. - Wir können dann auf einzelne Komponenten des Datums und der Uhrzeit zugreifen, indem wir die Strukturmitglieder verwenden.
- Beachte, dass wir 1900 zu
tm_year
addieren, da es Jahre seit 1900 zählt. - Wir addieren 1 zu
tm_mon
, da Monate in dieser Struktur mit 0-11 nummeriert sind.
Dies gibt uns viel mehr Flexibilität, wie wir unsere Datum und Uhrzeitinformationen präsentieren.
Formatierungsoptionen
Jetzt, da wir wissen, wie wir auf einzelne Komponenten eines Datums und einer Uhrzeit zugreifen können, schauen wir uns einige gängige Formatierungsoptionen an:
Formatbezeichner | Beschreibung | Beispiel |
---|---|---|
%Y | Jahr (4 Ziffern) | 2023 |
%y | Jahr (2 Ziffern) | 23 |
%m | Monat (01-12) | 06 |
%d | Tag des Monats (01-31) | 22 |
%H | Stunde im 24h-Format (00-23) | 15 |
%I | Stunde im 12h-Format (01-12) | 03 |
%M | Minute (00-59) | 30 |
%S | Sekunde (00-59) | 45 |
%p | AM oder PM Bezeichnung | PM |
Lassen Sie uns diese verwenden:
#include <iostream>
#include <ctime>
#include <iomanip>
int main() {
time_t jetzt = time(0);
tm *ltm = localtime(&jetzt);
std::cout << "Benutzerdefiniertes Format: "
<< std::put_time(ltm, "%Y-%m-%d %I:%M:%S %p")
<< std::endl;
return 0;
}
In diesem Beispiel:
- Wir inkludieren den Header
<iomanip>
fürstd::put_time
. - Wir verwenden
std::put_time
, um unsere Zeit gemäß den Bezeichnern zu formatieren, die wir bereitstellen. - Dies wird etwas wie "2023-06-22 03:30:45 PM" ausgeben.
Schlussfolgerung
Herzlichen Glückwunsch! Sie haben gerade Ihre ersten Schritte in die Welt der Datum und Uhrzeit-Manipulation in C++ gemacht. Wir haben behandelt, wie man die aktuelle Zeit abruft, sie in eine lesbare Zeichenkette umwandelt, auf einzelne Komponenten zugreift und sogar benutzerdefinierte Formate erstellt.
Denken Sie daran, dass das Arbeiten mit Daten und Zeiten knifflig sein kann (denken Sie an Zeitzonen, Sommerzeit, Schaltjahre...), aber diese Grundlagen werden Ihnen in den meisten Fällen gut dienen. Während Sie Ihren Weg in C++ fortsetzen, entdecken Sie fortgeschrittene Techniken und Bibliotheken für die Behandlung komplexer Datum und Uhrzeitoperationen.
Üben Sie weiter, bleiben Sie neugierig und vor allem, haben Sie Spaß beim Coden! Wer weiß, vielleicht schreiben Sie eines Tages den Code für die nächste große Zeitreise-Maschine. Bis dahin, halten Sie Ihre Compiler heißen und Ihre Syntaxfehler kalt!
Credits: Image by storyset