C date and time functions

Wikipedia open wikipedia design.

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.

Overview of functions[edit]

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

Identifier Description
difftime computes the difference in seconds between two time_t values
time 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.
clock returns a processor tick count associated with the process
asctime converts a struct tm object to a textual representation (deprecated)
ctime converts a time_t value to a textual representation
strftime converts a struct tm object to custom textual representation
wcsftime converts a struct tm object to custom wide string textual representation
gmtime converts a time_t value to calendar time expressed as Coordinated Universal Time[2]
localtime converts a time_t value to calendar time expressed as local time
mktime converts calendar time to a time_t value.
Constants CLOCKS_PER_SEC number of processor clock ticks per second
Types struct tm broken-down calendar time type: year, month, day, hour, minute, second
time_t arithmetic time type (typically time since the epoch)
clock_t process running time type


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[edit]


  1. ^ ISO/IEC 9899:1999 specification (PDF). p. 351, § 7.32.2.
  2. ^ open-std.org - Committee Draft -- May 6, 2005 page 355

External links[edit]

This page is based on a Wikipedia article written by contributors (read/edit).
Text is available under the CC BY-SA 4.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.