Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
C date and time functions
Library of C programs

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.

We don't have any images related to C date and time functions yet.
We don't have any YouTube videos related to C date and time functions yet.
We don't have any PDF documents related to C date and time functions yet.
We don't have any Books related to C date and time functions yet.
We don't have any archived web articles related to C date and time functions yet.

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.23 In 1989, the ANSI C standard is released including strftime and other date and time functions.4

Overview of functions

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

IdentifierDescription
Timemanipulationdifftimecomputes the difference in seconds between two time_t values
timereturns 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.
clockreturns a processor tick count associated with the process
timespec_get (C11)returns a calendar time based on a time base
Formatconversionsasctimeconverts a struct tm object to a textual representation (deprecated)
ctimeconverts a time_t value to a textual representation
strftimeconverts a struct tm object to custom textual representation
strptimeconverts a string with time information to a struct tm
wcsftimeconverts a struct tm object to custom wide string textual representation
gmtimeconverts a time_t value to calendar time expressed as Coordinated Universal Time5
localtimeconverts a time_t value to calendar time expressed as local time
mktimeconverts calendar time to a time_t value.
ConstantsCLOCKS_PER_SECnumber of processor clock ticks per second
TIME_UTCtime base for UTC
Typesstruct tmbroken-down calendar time type: year, month, day, hour, minute, second
time_tarithmetic time type (typically time since the Unix epoch)
clock_tprocess running time type
struct timespectime 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.6 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(&current_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

See also

The Wikibook C Programming has a page on the topic of: C Programming/C Reference

References

  1. ISO/IEC 9899:1999 specification (PDF). p. 351, § 7.32.2. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf

  2. "PWB1 date system command - man page". www.tuhs.org. https://www.tuhs.org/cgi-bin/utree.pl?file=PWB1/usr/man/man1/date.1

  3. "date.c sourcecode of PWB1". www.tuhs.org. https://www.tuhs.org/cgi-bin/utree.pl?file=PWB1/sys/source/s1/date.c

  4. "Rationale for American National Standard for Information Systems - Programming Language - C - Date and Time". www.lysator.liu.se. https://www.lysator.liu.se/c/rat/d12.html#4-12-3-5

  5. open-std.org - Committee Draft -- May 6, 2005 page 355 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf

  6. Markus Kuhn. "Modernized API for ISO C". cl.cam.ac.uk. https://www.cl.cam.ac.uk/~mgk25/time/c/