tm

From cppreference.com
< c‎ | chrono
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
Notes
  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)

Example

Show the start of calendar time.

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

Possible output:

Mon Jan  1 00:00:00 1900

References

  • 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
(function)
converts time since epoch to calendar time expressed as Coordinated Universal Time (UTC)
(function)