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.[1] They provide support for time acquisition, conversion between date formats, and formatted output to strings.
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.[2][3] In 1989, the ANSI C standard is released including strftime and other date and time functions.[4]
strftime
date
The C date and time operations are defined in the time.h header file (ctime header in C++).
time.h
ctime
difftime
time_t
time
clock
timespec_get
asctime
struct tm
strptime
wcsftime
gmtime
localtime
mktime
CLOCKS_PER_SEC
TIME_UTC
clock_t
struct timespec
The timespec and related types were originally proposed by Markus Kuhn to provide a variety of time bases, but only TIME_UTC was accepted.[6] The functionalities were, however, added to C++ in 2020 in std::chrono.
timespec
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