---
name: "timegm"
section: "3"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/timegm"
---

# timegm(3)

inverses of gmtime and localtime

## NAME

timegm, timelocal - inverses of gmtime and localtime

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#include <time.h>
```

**\[\[deprecated\]\] time\_t timelocal(struct tm \****tm***);** **time\_t timegm(struct tm \****tm***);**

Feature Test Macro Requirements for glibc (see [**feature\_test\_macros**(7)](/feature_test_macros/7.md)):

**timelocal**(), **timegm**():

```
    Since glibc 2.19:
        _DEFAULT_SOURCE
    glibc 2.19 and earlier:
        _BSD_SOURCE || _SVID_SOURCE
```

## DESCRIPTION

The functions **timelocal**() and **timegm**() are the inverses of [**localtime**(3)](/localtime/3.md) and [**gmtime**(3)](/gmtime/3.md). Both functions take a broken-down time and convert it to calendar time (seconds since the Epoch, 1970-01-01 00:00:00 +0000, UTC). The difference between the two functions is that **timelocal**() takes the local timezone into account when doing the conversion, while **timegm**() takes the input value to be Coordinated Universal Time (UTC).

## RETURN VALUE

On success, these functions return the calendar time (seconds since the Epoch), expressed as a value of type *time\_t*. On error, they return the value *(time\_t) -1* and set *errno* to indicate the error.

## ERRORS

- **EOVERFLOW**

  The result cannot be represented.

## ATTRIBUTES

For an explanation of the terms used in this section, see [**attributes**(7)](/attributes/7.md).

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **timelocal**(), **timegm**() | Thread safety | MT-Safe env locale |

## STANDARDS

BSD.

## HISTORY

GNU, BSD.

The **timelocal**() function is equivalent to the POSIX standard function [**mktime**(3)](/mktime/3.md). There is no reason to ever use it.

## SEE ALSO

[**gmtime**(3)](/gmtime/3.md), [**localtime**(3)](/localtime/3.md), [**mktime**(3)](/mktime/3.md), [**tzset**(3)](/tzset/3.md)
