Ü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!

C++ Date & Time

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:

  1. Wir inkludieren zwei wichtige Header: <iostream> für Eingabe/Ausgabebetriebe und <ctime> für zeitaufgelöste Funktionen.
  2. In der main()-Funktion verwenden wir time(0), um die aktuelle Zeit abzurufen.
  3. Wir speichern diese Zeit in einer time_t-Variablen namens jetzt.
  4. 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:

  1. Wir verwenden die ctime()-Funktion, um unseren time_t-Wert in eine Zeichenkette umzuwandeln.
  2. Diese Zeichenkette wird in dt gespeichert.
  3. 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:

  1. Wir verwenden localtime(), um unseren time_t-Wert in eine tm-Struktur umzuwandeln.
  2. Wir können dann auf einzelne Komponenten des Datums und der Uhrzeit zugreifen, indem wir die Strukturmitglieder verwenden.
  3. Beachte, dass wir 1900 zu tm_year addieren, da es Jahre seit 1900 zählt.
  4. 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:

  1. Wir inkludieren den Header <iomanip> für std::put_time.
  2. Wir verwenden std::put_time, um unsere Zeit gemäß den Bezeichnern zu formatieren, die wir bereitstellen.
  3. 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