mktime
|
Definiert in Header
<time.h>
|
||
Renormalisiert die lokale Kalenderzeit, ausgedrückt als ein struct tm Objekt, und konvertiert sie ebenfalls in Zeit seit der Epoche als ein time_t Objekt. arg - > tm_wday und arg - > tm_yday werden ignoriert. Die Werte in arg werden nicht auf Bereichsüberschreitung überprüft.
Ein negativer Wert von
arg
-
>
tm_isdst
bewirkt, dass
mktime
versucht zu bestimmen, ob Sommerzeit zur angegebenen Zeit in Kraft war.
Wenn die Konvertierung zu
time_t
erfolgreich ist, wird das
arg
-Objekt modifiziert. Alle Felder von
arg
werden aktualisiert, um in ihre gültigen Bereiche zu passen.
arg
-
>
tm_wday
und
arg
-
>
tm_yday
werden unter Verwendung der in anderen Feldern verfügbaren Informationen neu berechnet.
Inhaltsverzeichnis |
Parameter
| arg | - | Zeiger auf ein tm Objekt, das die lokale Kalenderzeit zur Konvertierung angibt |
Rückgabewert
Die Zeit seit der Epoche als time_t -Objekt bei Erfolg, oder - 1 falls arg nicht als time_t -Objekt dargestellt werden kann (POSIX verlangt in diesem Fall zusätzlich, dass EOVERFLOW in errno gespeichert wird).
Hinweise
Wenn das
struct
tm
-Objekt von POSIX
strptime
oder einer entsprechenden Funktion stammt, ist der Wert von
tm_isdst
unbestimmt und muss explizit gesetzt werden, bevor
mktime
aufgerufen wird.
Beispiel
#define _POSIX_C_SOURCE 200112L // for setenv on gcc #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { setenv("TZ", "/usr/share/zoneinfo/America/New_York", 1); // POSIX-specific struct tm tm = *localtime(&(time_t){time(NULL)}); printf("Today is %s", asctime(&tm)); printf("(DST is %s)\n", tm.tm_isdst ? "in effect" : "not in effect"); tm.tm_mon -= 100; // tm_mon is now outside its normal range mktime(&tm); // tm_isdst is not set to -1; today's DST status is used printf("100 months ago was %s", asctime(&tm)); printf("(DST was %s)\n", tm.tm_isdst ? "in effect" : "not in effect"); }
Mögliche Ausgabe:
Today is Fri Apr 22 11:53:36 2016 (DST is in effect) 100 months ago was Sat Dec 22 10:53:36 2007 (DST was not in effect)
Referenzen
- C23-Standard (ISO/IEC 9899:2024):
-
- 7.27.2.3 Die mktime-Funktion (S.: TBD)
- C17-Standard (ISO/IEC 9899:2018):
-
- 7.27.2.3 Die mktime-Funktion (S: 285-286)
- C11-Standard (ISO/IEC 9899:2011):
-
- 7.27.2.3 Die mktime-Funktion (S: 390-391)
- C99-Standard (ISO/IEC 9899:1999):
-
- 7.23.2.3 Die mktime-Funktion (S: 340-341)
- C89/C90 Standard (ISO/IEC 9899:1990):
-
- 4.12.2.3 Die mktime-Funktion
Siehe auch
|
(C23)
(C11)
|
wandelt Zeit seit Epoche in Kalenderzeit um, ausgedrückt als Ortszeit
(Funktion) |
|
C++-Dokumentation
für
mktime
|
|