Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: July 2017



time.h, time - time types


#include <time.h>


The <time.h> header declares the structure tm, which includes the following members:

int tm_sec     /* seconds [0,60] */
int tm_min     /* minutes [0,59] */
int tm_hour    /* hour [0,23] */
int tm_mday    /* day of month [1,31] */
int tm_mon     /* month of year [0,11] */
int tm_year    /* years since 1900 */
int tm_wday    /* day of week [0,6] (Sunday =0) */
int tm_yday    /* day of year [0,365] */
int tm_isdst   /* daylight savings flag */

The value of tm_isdst is positive if Daylight Saving Time is in effect, 0 if Daylight Saving Time is not in effect, and negative if the information is not available.

The <time.h> header defines the following symbolic names:


Null pointer constant.


A number used to convert the value returned by the clock() function into seconds. See clock(3C).


The identifier of the CPU-time clock associated with the process making a clock() or timer*() function call.


The identifier of the CPU-time clock associated with the thread making a clock() or timer*() function call.

The <time.h> header declares the timespec structure, which has the following members:

time_t tv_sec     /* seconds */
long   tv_nsec     /* nanoseconds */

The <time.h> header declares the itimerspec structure, which has the following members:

struct timespec it_interval     /* timer period */
struct timespec it_value     /* timer expiration */

The following manifest constants are defined:


The identifier of the system-wide realtime clock.


Flag indicating time is absolute. For functions taking timer objects, this refers to the clock associated with the timer.


The identifier for the system-wide monotonic clock, which is defined as a clock whose value cannot be set with clock_settime() and that cannot have backward clock jumps. The maximum possible clock jump is implementation-defined. See clock_settime(3C).

The clock_t, size_t, time_t, clockid_t, and timer_t types are defined as described in <sys/types.h>. See types.h(3HEAD).

Although the value of CLOCKS_PER_SEC is required to be 1 million on all standard-conforming systems, it can be variable on other systems, and it should not be assumed that CLOCKS_PER_SEC is a compile-time constant.

The <time.h> header provides a declaration for getdate_err.

The following are declared as variables:

extern int daylight;
extern long timezone;
extern char *tzname[];

Inclusion of the <time.h> header can make visible all symbols from the <signal.h> header.


The range [0,60] for tm_sec allows for the occasional leap second.

tm_year is a signed value; therefore, years before 1900 can be represented.

To obtain the number of clock ticks per second returned by the times() function, applications should call sysconf(_SC_CLK_TCK). See times(2) and sysconf(3C).


See attributes(5) for descriptions of the following attributes:

Interface Stability

See Also

time(2), utime(2), clock(3C), ctime(3C), difftime(3C), getdate(3C), mktime(3C), strftime(3C), strptime(3C), types.h(3HEAD), clock_settime(3C), nanosleep(3C), timer_create(3C), timer_delete(3C), timer_settime(3C), attributes(5), standards(5)