Namensräume
Varianten
Aktionen

std::mktime

Von cppreference.com
< cpp‎ | chrono‎ | c
 
 
 
C-Stil Datums- und Zeitwerkzeuge
Funktionen
Zeitmanipulation
Formatkonvertierungen
mktime
Konstanten
Typen
(C++17)
 
Definiert im Header <ctime>
std::time_t mktime( std::tm* time );

Konvertiert lokale Kalenderzeit in eine Zeit seit Epoche als std::time_t-Objekt. time->tm_wday und time->tm_yday werden ignoriert. Die Werte in time dürfen außerhalb ihrer normalen Bereiche liegen.

Ein negativer Wert von time->tm_isdst veranlasst mktime zu versuchen zu bestimmen, ob die Sommerzeit aktiv war.

Wenn die Konvertierung erfolgreich ist, wird das time-Objekt modifiziert. Alle Felder von time werden aktualisiert, um in ihre korrekten Bereiche zu passen. time->tm_wday und time->tm_yday werden neu berechnet, indem Informationen aus anderen Feldern verwendet werden.

Inhalt

[bearbeiten] Parameter

time - Zeiger auf ein std::tm-Objekt, das die zu konvertierende lokale Kalenderzeit angibt

[bearbeiten] Rückgabewert

Zeit seit Epoche als std::time_t-Objekt bei Erfolg oder -1, wenn time nicht als std::time_t-Objekt dargestellt werden kann.

[bearbeiten] Hinweise

Wenn das std::tm-Objekt von std::get_time oder dem POSIX strptime erhalten wurde, ist der Wert von tm_isdst unbestimmt und muss vor dem Aufruf von mktime explizit gesetzt werden.

[bearbeiten] Beispiel

Lokale Zeit explizit erstellen.

#include <ctime>
#include <iomanip>
#include <iostream>
#include <sstream>
 
int main()
{
    setenv("TZ", "/usr/share/zoneinfo/America/Los_Angeles", 1); // POSIX-specific
 
    std::tm tm{}; // Zero initialise
    tm.tm_year = 2020 - 1900; // 2020
    tm.tm_mon = 2 - 1; // February
    tm.tm_mday = 15; // 15th
    tm.tm_hour = 10;
    tm.tm_min = 15;
    tm.tm_isdst = 0; // Not daylight saving
    std::time_t t = std::mktime(&tm); 
    std::tm local = *std::localtime(&t);
 
    std::cout << "local: " << std::put_time(&local, "%c %Z") << '\n';
}

Mögliche Ausgabe

local: Sat Feb 15 10:15:00 2020 PST

[bearbeiten] Siehe auch

konvertiert Zeit seit Epoche in Kalenderzeit, ausgedrückt als lokale Zeit
(Funktion) [bearbeiten]
C-Dokumentation für mktime