Standard library header <time.h>

From cppreference.net
< c‎ | header

This header is part of date and time utilities library.

Functions

Time manipulation
computes the difference between times
(function)
returns the current calendar time of the system as time since epoch
(function)
returns raw processor clock time since the program is started
(function)
returns the calendar time in seconds and nanoseconds based on a given time base
(function)
returns the resolution of calendar time based on a given time base
(function)
Format conversions
(deprecated in C23)(C11)
converts a tm object to a textual representation
(function)
(deprecated in C23)(C11)
converts a time_t object to a textual representation
(function)
converts a tm object to custom textual representation
(function)
converts time since epoch to calendar time expressed as Coordinated Universal Time (UTC)
(function)
converts time since epoch to calendar time expressed as local time
(function)
converts calendar time to time since epoch
(function)

Constants

number of processor clock ticks per second
(macro constant)

Types

calendar time type
(struct)
calendar time since epoch type
(typedef)
processor time since era type
(typedef)
time in seconds and nanoseconds
(struct)

Synopsis

#define __STDC_VERSION_TIME_H__ 202311L
 
#define NULL           /* see description */
#define CLOCKS_PER_SEC /* see description */
#define TIME_UTC       /* see description */
 
typedef /* see description */ clock_t;
typedef /* see description */ size_t;
typedef /* see description */ time_t;
 
struct timespec { /* see description */ };
struct tm { /* see description */ };
 
clock_t clock(void);
double difftime(time_t time1, time_t time0);
time_t mktime(struct tm* timeptr);
time_t timegm(struct tm* timeptr);
time_t time(time_t* timer);
int timespec_get(struct timespec* ts, int base);
int timespec_getres(struct timespec* ts, int base);
[[deprecated]] char* asctime(const struct tm* timeptr);
[[deprecated]] char* ctime(const time_t* timer);
struct tm* gmtime(const time_t* timer);
struct tm* gmtime_r(const time_t* timer, struct tm* buf);
struct tm* localtime(const time_t* timer);
struct tm* localtime_r(const time_t* timer, struct tm* buf);
size_t strftime(char* restrict s, size_t maxsize, const char* restrict format,
const struct tm* restrict timeptr);

Only if supported by the implementation:

#define TIME_MONOTONIC /* see description */
#define TIME_ACTIVE    /* see description */

Only if threads are supported and it is supported by the implementation:

#define TIME_THREAD_ACTIVE /* see description */

Only if the implementation defines __STDC_LIB_EXT1__ and additionally the user code defines __STDC_WANT_LIB_EXT1__ before any inclusion of <time.h>:

#ifdef __STDC_WANT_LIB_EXT1__
typedef /* see description */ errno_t;
typedef /* see description */ rsize_t;
 
errno_t asctime_s(char* s, rsize_t maxsize, const struct tm* timeptr);
errno_t ctime_s(char* s, rsize_t maxsize, const time_t* timer);
struct tm* gmtime_s(const time_t* restrict timer, struct tm* restrict result);
struct tm* localtime_s(const time_t* restrict timer, struct tm* restrict result);
#endif