< cpp‎ | chrono‎ | c
Utilities library
General utilities
Date and time
Function objects
Formatting library (C++20)
Relational operators (deprecated in C++20)
Integer comparison functions
Swap and type operations
Common vocabulary types
Elementary string conversions
Defined in header <ctime>
struct tm;

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


[edit] Member objects

int tm_sec
seconds after the minute – [0, 61] (until C++11)[0, 60] (since C++11)[note 1]
(public member object)
int tm_min
minutes after the hour – [0, 59]
(public member object)
int tm_hour
hours since midnight – [0, 23]
(public member object)
int tm_mday
day of the month – [1, 31]
(public member object)
int tm_mon
months since January – [0, 11]
(public member object)
int tm_year
years since 1900
(public member object)
int tm_wday
days since Sunday – [0, 6]
(public member object)
int tm_yday
days since January 1 – [0, 365]
(public member object)
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
(public member object)
[edit] Notes

The Standard mandates only the presence of the aforementioned members in some order. The implementations usually add more data members to this structure.

  1. Range allows for a positive leap second. Two leap seconds in the same minute are not allowed (the range 0..61 was a defect introduced in C89 and corrected in C99)

[edit] Example

#include <ctime>
#include <iostream>
int main()
    std::tm tm{};
    tm.tm_year = 2022-1900;
    tm.tm_mday = 1;
    std::cout << std::asctime(&tm)
              << "sizeof(std::tm) = "
              << sizeof(std::tm) << '\n';

Possible output:

Sat Jan  1 00:00:00 2022
sizeof(std::tm) = 56

[edit] See also

converts time since epoch to calendar time expressed as local time
(function) [edit]
converts time since epoch to calendar time expressed as Universal Coordinated Time
(function) [edit]