C date and time functions

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

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

Identifier Description
Time
manipulation
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
Format
conversions
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

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
gollark: (in any case, it's probably less than the resource waste from Electron etc. by rather a lot)
gollark: I do vaguely feel this way about encryption and whatever - if people were trustworthy and nice™, we could save some amount of system resources and key distribution hassle and whatever. As it turns out, though, they aren't, so it isn't very relevant, and even if everyone suddenly did stop being antagonistic, this is a ridiculously unstable state.
gollark: What of the GTech™ contrasocietous chambers™?
gollark: You don't get secure systems by saying "let's just trust Jeff here".
gollark: Well, the energy thing is separate, but this is good security design, yes.

See also

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.