struct tm

struct tm ist definiert in der time, die in C über time.h, bzw. in C++ über ctime eingebunden wird.

Datentyp

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.

Aufbau

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.

Verwendungszweck

struct tm wird in der Regel in der C-Standard-Library time.h verwendet.

Beispieleprogramme im Wiki