C date and time functions

Short description: Library of C programs

C standard library

General topics

* Data types
* Character classification
* Strings
* Mathematics
* File input/output
* Date/time
* Localization
* Memory allocation
* Process control
* Signals
* Alternative tokens

Miscellaneous headers

* <assert.h>
* <errno.h>
* <setjmp.h>
* <stdarg.h>

* v
* t
* e

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.

## Contents

* 1 Overview of functions
* 2 Example
* 3 See also
* 4 References
* 5 External links

## 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
`timespec_get` (C11)  | returns a calendar time based on a time base
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
`strptime` | converts a string with time information to a `struct tm`
`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
`TIME_UTC` | time base for UTC
Types  | `struct tm` | broken-down calendar time type: year, month, day, hour, minute, second
`time_t` | arithmetic time type (typically time since the Unix epoch)
`clock_t` | process running time type
`timespec` | time 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.[3] 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

* Unix time
* Year 2038 problem

## References

1. ↑ ISO/IEC 9899:1999 specification. p. 351, § 7.32.2. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf.
2. ↑ open-std.org - Committee Draft -- May 6, 2005 page 355
3. ↑ Markus Kuhn. "Modernized API for ISO C". https://www.cl.cam.ac.uk/~mgk25/time/c/.

## External links

* v
* t
* e

C programming language

* ANSI C
* C89 and C90
* C99
* C11
* C18
* C2x
* Embedded C
* MISRA C

Features|

* Functions
* Header files
* Libraries
* Operators
* String
* Syntax
* Preprocessor
* Data types

Standard library
functions|

* Char (ctype.h)
* File I/O (stdio.h)
* Math (math.h)
* Dynamic memory (stdlib.h)
* String (string.h)
* Time (time.h)
* Variadic (stdarg.h)
* POSIX

Standard
libraries|

* Bionic
* libhybris
* dietlibc
* EGLIBC
* glibc
* klibc
* Microsoft Run-time Library
* musl
* Newlib
* uClibc
* BSD libc

Compilers|

* Comparison of compilers
* ACK
* Borland Turbo C
* Clang
* GCC
* ICC
* LCC
* PCC
* SDCC
* TCC
* Microsoft Visual Studio / Express / C++
* Watcom C/C++

IDEs|

* Comparison of IDEs
* Anjuta
* Code
* CodeLite
* Eclipse
* Geany
* Microsoft Visual Studio
* NetBeans

Comparison with
other languages|

* Compatibility of C and C++
* Comparison with Embedded C
* Comparison with Pascal
* Comparison of programming languages

Descendant
languages|

* C++
* C#
* D
* Objective-C
* Alef
* Limbo
* Go
* Vala

* Category

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/C date and time functions. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Physics:C_date_and_time_functions&oldid=2568504"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template