Namespaces
Variants
Views
Actions

std::tm

From cppreference.com
< cpp‎ | chrono‎ | c
 
 
Utilities library
General utilities
Relational operators (deprecated in C++20)
Integer comparison functions
(C++20)(C++20)(C++20)
(C++20)
Swap and type operations
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Common vocabulary types
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)

Elementary string conversions
(C++17)
(C++17)
Stacktrace
 
Date and time utilities
(C++11)
(C++11)
Time of day
(C++20)



(C++20)(C++20)(C++20)(C++20)
Clocks
(C++20)
                                             
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
Calendars
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
Time zones
(C++20)
(C++20)
(C++20)
(C++20)
C-style date and time
 
 
Defined in header <ctime>
struct tm;

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

Contents

[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 either 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

Show the start of calendar time.

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

Possible output:

Mon Jan  1 00:00:00 1900
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]