Skip to main content
DNS Checker(beta)

Unix Time Now

What is the current Unix timestamp? The live unix clock above reads directly from your device. Use the epoch converter below to translate between timestamps and human-readable dates, or explore code examples for every major language.

Current Unix Timestamp

Wed, 20 May 2026 03:40:13 GMT

Time in UTC: 03:40:13 AM Wednesday, May 20, 2026

Timestamp to Date

Date to Timestamp

The current epoch translates to

DateFormat
05/20/2026 @ 03:40:13UTC
2026-05-20T03:40:13+00:00ISO 8601
Wed, 20 May 2026 03:40:13 GMTRFC 2822
2026-05-20T03:40:13+00:00RFC 3339

Unix time: the number of seconds since January 1, 1970. Simple, universal, and timezone-free.

Written by Ishan Karunaratne · Last reviewed:

What Is Unix Time?

Unix time (also called epoch time, POSIX time, or Unix timestamp) is a system for tracking time as a running count of seconds. The counter starts at zero on January 1, 1970 at 00:00:00 UTC — a moment known as the Unix epoch. Right now, that counter is somewhere around 1.77 billion and climbing by one every second.

Unlike human date formats that vary by locale, language, and calendar system, a Unix timestamp is a single integer that means the same thing everywhere. It doesn't care about timezones, daylight saving time, or date formatting conventions. 1771287944 is unambiguous whether you're reading it in Tokyo, London, or New York.

This makes Unix time the standard for timestamps in databases, APIs, log files, JWT tokens, cookies, cron jobs, and virtually every system that needs to record when something happened. It's compact (4–8 bytes), trivially sortable, and makes duration calculations simple — just subtract one timestamp from another. To see unix time now, check the live counter at the top of this page. Use the epoch converter above to translate any timestamp to a human-readable date or vice versa.

Why January 1, 1970?

In 1969, Ken Thompson and Dennis Ritchie at Bell Labs began building Unix on a PDP-7 minicomputer. The original system clock used a 32-bit integer counting 60ths of a second from an epoch of January 1, 1971. With 60-Hz ticks, a 32-bit counter would overflow in just over 2 years — not very useful.

By 1971, they switched to counting whole seconds, which extended the range to about 136 years. The epoch was shifted back to January 1, 1970 — a round number that was recent enough to keep values small but old enough that no relevant records would predate it. There was no grand technical reason; it was a practical choice that stuck.

The convention was codified in the POSIX standard (Section 4.16) and has been adopted by virtually every operating system, programming language, and database engine since. The epoch has never changed, and at this point, it never will. Unix timestamps are embedded in protocols you interact with daily — from DNS record TTLs to TLS certificate expiry dates and HTTP cache headers.

The Year 2038 Problem

On January 19, 2038 at 03:14:07 UTC, the Unix timestamp will reach 2147483647 — the maximum value a signed 32-bit integer can hold. One second later, the binary representation overflows: the sign bit flips, and the value wraps around to -2147483648, which represents December 13, 1901.

This is two's complement arithmetic at work. In a 32-bit signed integer, the highest bit indicates the sign. When 2,147,483,647 ( 0x7FFFFFFF) increments by one, it becomes 0x80000000 — a negative number. Any system that stores time as a 32-bit time_t will interpret post-2038 dates as being in 1901.

The fix: migrate to 64-bit time_t. A 64-bit signed integer can count seconds for over 292 billion years in either direction — well past the projected lifespan of the Sun. The Linux kernel completed its 64-bit time transition in version 5.6 (2020), and most modern operating systems, languages, and databases now use 64-bit timestamps by default.

The remaining risk lies in embedded systems (car ECUs, industrial PLCs, medical devices), IoT firmware that may never receive updates, and legacy databases with 32-bit timestamp columns. Think of it as Y2K for the Unix world — serious for systems that haven't been updated, but already solved on modern platforms.

Unix Time in Programming

Every major programming language and database engine has built-in support for Unix timestamps. Here's how to get the current Unix time and convert a timestamp back to a date in each:

JavaScript

Get current timestamp

Math.floor(Date.now() / 1000)

Convert to date

new Date(ts * 1000)

Python

Get current timestamp

import time
int(time.time())

Convert to date

from datetime import datetime
datetime.fromtimestamp(ts)

Go

Get current timestamp

time.Now().Unix()

Convert to date

time.Unix(ts, 0)

Bash

Get current timestamp

date +%s

Convert to date

date -d @1771287944

PHP

Get current timestamp

time()

Convert to date

date('Y-m-d H:i:s', $ts)

Ruby

Get current timestamp

Time.now.to_i

Convert to date

Time.at(ts)

MySQL

Get current timestamp

SELECT UNIX_TIMESTAMP()

Convert to date

SELECT FROM_UNIXTIME(ts)

PostgreSQL

Get current timestamp

SELECT EXTRACT(EPOCH FROM NOW())

Convert to date

SELECT TO_TIMESTAMP(ts)

Seconds vs Milliseconds

A frequent source of bugs: JavaScript's Date.now() returns milliseconds since the epoch (13 digits, e.g. 1771287944000), while most other languages and databases use seconds (10 digits, e.g. 1771287944).

Passing a seconds timestamp to a function expecting milliseconds gives you a date in January 1970. Passing milliseconds where seconds are expected gives you a date tens of thousands of years in the future. The quick diagnostic: count the digits. 10 digits means seconds, 13 means milliseconds.

Seconds (10 digits)

1771287944

Used by Python, Go, Bash, PHP, Ruby, C, Rust, Java (Instant.getEpochSecond()), most databases.

Milliseconds (13 digits)

1771287944000

Used by JavaScript, Java (System.currentTimeMillis()), Elasticsearch, some NoSQL databases.

To convert: multiply seconds by 1,000 to get milliseconds. Divide milliseconds by 1,000 (rounding down) to get seconds. The converter above auto-detects which format you've entered.

Notable Unix Timestamps

TimestampDate (UTC)
0Jan 1, 1970 00:00:00
946684800Jan 1, 2000 00:00:00
1000000000Sep 9, 2001 01:46:40
1234567890Feb 13, 2009 23:31:30
1700000000Nov 14, 2023 22:13:20
2000000000May 18, 2033 03:33:20
2147483647Jan 19, 2038 03:14:07
-1Dec 31, 1969 23:59:59

Time Duration Reference

Common time intervals expressed in seconds — useful when calculating expiration times, cache TTLs, JWT lifetimes, or cron intervals.

DurationSeconds
1 minute60
1 hour3,600
1 day86,400
1 week604,800
1 month (30.44 days)2,630,016
1 year (365.25 days)31,557,600

Related Tools

Frequently Asked Questions