C date and time functions
C standard library (libc) |
---|
General topics |
Miscellaneous headers |
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++).
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++ in 2020 in std::chrono.
Example
The following C source code prints the current time to the standard output stream.
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
time_t current_time;
char* c_time_string;
/* Obtain current time. */
current_time = time(NULL);
if (current_time == ((time_t)-1))
{
(void) fprintf(stderr, "Failure to obtain the current time.\n");
exit(EXIT_FAILURE);
}
/* Convert to local time format. */
c_time_string = ctime(¤t_time);
if (c_time_string == NULL)
{
(void) fprintf(stderr, "Failure to convert the current time.\n");
exit(EXIT_FAILURE);
}
/* Print to stdout. ctime() has already added a terminating newline character. */
(void) printf("Current time is %s", c_time_string);
exit(EXIT_SUCCESS);
}
The output is:
Current time is Thu Sep 15 21:18:23 2016