The C date and time functions are a group of functions in the standard library of the C programming language implementing date and time manipulation operations. They provide support for time acquisition, conversion between date formats, and formatted output to strings.

History

The format string used in strftime traces back to at least PWB/UNIX 1.0, released in 1977. Its date system command includes various formatting options. In 1989, the ANSI C standard is released including strftime and other date and time functions.

Overview of functions

The C date and time operations are defined in the <time.h> header file (<ctime> header in C++).

IdentifierDescription
Time manipulationcomputes the difference in seconds between two time_t values
returns the current time of the system as a time_t value, number of seconds, (which is usually time since an epoch, typically the Unix epoch). The value of the epoch is operating system dependent; 1900 and 1970 are often used. See RFC 868.
returns a processor tick count associated with the process
(C11)returns a calendar time based on a time base
Format conversionsconverts a struct tm object to a textual representation (deprecated)
converts a time_t value to a textual representation
converts a struct tm object to custom textual representation
converts a string with time information to a struct tm
converts a struct tm object to custom wide string textual representation
converts a time_t value to calendar time expressed as Coordinated Universal Time
converts a time_t value to calendar time expressed as local time
converts calendar time to a time_t value.
Constantsnumber of processor clock ticks per second
TIME_UTCtime base for UTC
Typesbroken-down calendar time type: year, month, day, hour, minute, second
arithmetic time type (typically time since the Unix epoch)
process running time type
time with seconds and nanoseconds

The timespec and related types were originally proposed by Markus Kuhn to provide a variety of time bases, but only TIME_UTC was accepted. The functionalities were, however, added to C++ with the release of C++20 in std::chrono.

Example

The following C source code prints the current time to the standard output stream.

The output is:

See also

External links