struct tm ist definiert in der time, die in C über time.h, bzw. in C++ über ctime eingebunden wird.
struct tm speichert einen Zeitstempel und zusätzliche Metainformationen in einer Struktur. Dabei werden die einzelnen Informationen des Zeitstempels nicht wie bei time_t in komprimierter Form gehalten, sondern in einzelne Komponenten (Stunde, Minute, Sekunde) unterteilt gespeichert.
struct tm enthält neun Einträge vom Typ int, wobei die Reihenfolge innerhalb der Struktur nicht festgelegt ist.
struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
Die Einträge haben folgende Bedeutung und Reichwerten
| Member | Meaning | Wertebereich |
|---|---|---|
| tm_sec | Sekunden seit der letzten vollen Minute | 0..61 |
| tm_min | Minuten seit der letzten vollen Stunde | 0..59 |
| tm_hour | Stunden seit Mitternacht | 0..23 |
| tm_mday | Tag des Monats | 1..31 |
| tm_mon | Monate seit Januar | 0..11 |
| tm_year | Jahr seit 1900 | 0.. |
| tm_wday | Tage seit Sonntag | 0..6 |
| tm_yday | Tage seit dem 1. Januar | 0..365 |
| tm_isdst | Sommerzeit Flag |
Erläuterungen
Das Sommerzeit-Flag (tm_isdst) ist größer als 0, wenn es zurzeit Sommerzeit ist. Im Falle von Winterzeit ist es genau 0. Ist es kleiner als 0, so ist die Information nicht verfügbar.
tm_sec ist üblicherweise zwischen 0 und 59 Sekunden. Um Schaltsekunden zu realisieren, liegt der Wertebereich in Ausnahmefällen jedoch zwischen 0 und 61 Sekunden.
struct tm wird in der Regel in der C-Standard-Library time.h verwendet.