[ctime.syn]

# 30 Time library [[time]](./#time)

## 30.15 Header <ctime> synopsis [ctime.syn]

[ð](#header:%3cctime%3e)

#define __STDC_VERSION_TIME_H__ 202311L#define NULL *see [[support.types.nullptr]](support.types.nullptr "17.2.3 Null pointers")*#define CLOCKS_PER_SEC *see below*#define TIME_UTC *see below*#define TIME_MONOTONIC *see below* // optional#define TIME_ACTIVE *see below* // optional#define TIME_THREAD_ACTIVE *see below* // optionalnamespace std {using size_t = *see [[support.types.layout]](support.types.layout "17.2.4 Sizes, alignments, and offsets")*; using clock_t = *see below*; using time_t = *see below*; struct timespec; struct tm;

 clock_t clock(); double difftime(time_t time1, time_t time0);
 time_t mktime(tm* timeptr);
 time_t timegm(tm* timeptr);
 time_t time(time_t* timer); int timespec_get(timespec* ts, int base); int timespec_getres(timespec* ts, int base);
 tm* gmtime(const time_t* timer);
 tm* gmtime_r(const time_t* timer, tm* buf);
 tm* localtime(const time_t* timer);
 tm* localtime_r(const time_t* timer, tm* buf);
 size_t strftime(char* s, size_t maxsize, const char* format, const tm* timeptr);}

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/time.tex#L11641)

The contents of the header [<ctime>](#header:%3cctime%3e "30.15 Header <ctime> synopsis [ctime.syn]") are the same as the C standard library header [<time.h>](support.c.headers.general#header:%3ctime.h%3e "17.15.1 General [support.c.headers.general]")[.](#1.sentence-1)[254](#footnote-254 "strftime supports the C conversion specifiers C, D, e, F, g, G, h, r, R, t, T, u, V, and z, and the modifiers E and O.")

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/time.tex#L11650)

The functions gmtime andlocaltime are not required to avoid data
races ([[res.on.data.races]](res.on.data.races "16.4.6.10 Data race avoidance"))[.](#2.sentence-1)

See also: ISO/IEC 9899:2024, 7.29

[254)](#footnote-254)[254)](#footnoteref-254)

strftime supports the C conversion specifiersC, D, e, F, g, G, h,r, R, t, T, u, V, andz, and the modifiers E and O[.](#footnote-254.sentence-1)
