Defined in header <time.h>
struct tm;

Structure holding a calendar date and time broken down into its components.

Member objects

int tm_sec seconds after the minute – [0, 61](until C99) / [0, 60] (since C99)[note 1]
int tm_min minutes after the hour – [0, 59]
int tm_hour hours since midnight – [0, 23]
int tm_mday day of the month – [1, 31]
int tm_mon months since January – [0, 11]
int tm_year years since 1900
int tm_wday days since Sunday – [0, 6]
int tm_yday days since January 1 – [0, 365]
int tm_isdst Daylight Saving Time flag. The value is positive if DST is in effect, zero if not and negative if no information is available
  1. Range allows for a positive leap second. Two leap seconds in the same minute are not allowed (the C90 range 0..61 was a defect)


Show the start of calendar time.

#include <stdio.h>
#include <time.h>
int main(void)
    struct tm start = {.tm_mday=1};
    printf("%s\n", asctime(&start));

Possible output:

Mon Jan  1 00:00:00 1900


  • C11 standard (ISO/IEC 9899:2011):
    • 7.27.1/3 Components of time (p: 388)
  • C99 standard (ISO/IEC 9899:1999):
    • 7.23.1/3 Components of time (p: 338)
  • C89/C90 standard (ISO/IEC 9899:1990):
    • 4.12.1 Components of time

See also

converts time since epoch to calendar time expressed as local time
converts time since epoch to calendar time expressed as Coordinated Universal Time (UTC)
C++ documentation for tm

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.