Discord Guide

Epoch Time Converter — Convert Epoch to Human Readable Date Instantly

July 17, 2026 · 11 min read

Epoch Time Converter — Convert Epoch to Human Readable Date Instantly

An epoch time converter takes a raw epoch number — the count of seconds or milliseconds since January 1 1970 at 00:00:00 UTC — and converts it to a human-readable date and time string. The fastest way to convert any epoch time is the Unix Timestamp Converter — paste any value in seconds or milliseconds and get the readable date instantly with no code required.

Epoch time (also called Unix time or POSIX time) is a single integer with no year, month, day, or timezone embedded — it only becomes human-readable after a converter translates it. The conversion adds the counted seconds back to the Unix epoch reference point (January 1 1970) to produce a real date.

What Is an Epoch Time Converter?

An epoch time converter is any tool or function that translates a raw epoch value into a format humans can read — for example converting 1783941653 into "Thursday, July 17, 2026 at 12:00 PM UTC."

The conversion works in both directions:

  • Epoch to human readable date — paste an epoch number, get a readable date
  • Date to epoch — enter a date and time, get the corresponding epoch value

The Unix Timestamp Converter handles both directions instantly and auto-detects whether your value is in seconds (10 digits), milliseconds (13 digits), or microseconds (16 digits).

How Do You Convert Epoch Time to a Human Readable Date?

Step 1 — Check your digit count:

DigitsUnitExampleAction
10Seconds1,783,941,653Use directly
13Milliseconds1,783,941,653,000Divide by 1,000
16Microseconds1,783,941,653,000,000Divide by 1,000,000
19Nanoseconds1,783,941,653,000,000,000Divide by 1,000,000,000

Step 2 — Convert to a readable date:

Use the Unix Timestamp Converter for instant no-code conversion, or use your programming language's built-in function — see the code examples below.

Step 3 — Choose your output format:

Common human-readable formats for epoch conversion output:

  • ISO 8601: 2026-07-17T12:00:00Z — the international standard, always UTC
  • RFC 2822: Thu, 17 Jul 2026 12:00:00 +0000 — used in email headers and HTTP
  • Unix date string: Thu Jul 17 12:00:00 UTC 2026 — shell and terminal output
  • Readable local: July 17, 2026 at 12:00 PM — localized display for end users

How to Convert Epoch to Human Readable Date in JavaScript

JavaScript's Date constructor expects milliseconds — multiply seconds by 1,000 first.

Seconds to human readable:

const epochSeconds = 1783941653;
const date = new Date(epochSeconds * 1000);
console.log(date.toUTCString());
console.log(date.toISOString());

Milliseconds to human readable:

const epochMs = 1783941653000;
const date = new Date(epochMs);
console.log(date.toUTCString());

Auto-detect seconds vs milliseconds:

function epochToReadable(epoch) {
  const ms = epoch.toString().length === 13 ? epoch : epoch * 1000;
  const date = new Date(ms);
  return date.toISOString();
}

console.log(epochToReadable(1783941653));
console.log(epochToReadable(1783941653000));

Custom formatted output:

const epochSeconds = 1783941653;
const date = new Date(epochSeconds * 1000);
const options = {
  year: 'numeric', month: 'long', day: 'numeric',
  hour: '2-digit', minute: '2-digit', timeZone: 'UTC'
};
console.log(date.toLocaleString('en-US', options));

How to Convert Epoch to Human Readable Date in Python

import datetime

epoch_seconds = 1783941653

dt_utc = datetime.datetime.utcfromtimestamp(epoch_seconds)
print(dt_utc)

formatted = dt_utc.strftime('%Y-%m-%d %H:%M:%S UTC')
print(formatted)

dt_explicit = datetime.datetime.fromtimestamp(
    epoch_seconds,
    tz=datetime.timezone.utc
)
print(dt_explicit.isoformat())

Convert milliseconds:

import datetime

epoch_ms = 1783941653000
epoch_seconds = epoch_ms / 1000
dt = datetime.datetime.utcfromtimestamp(epoch_seconds)
print(dt.strftime('%Y-%m-%d %H:%M:%S UTC'))

How to Convert Epoch to Human Readable Date in PHP

$epoch_seconds = 1783941653;

echo gmdate("Y-m-d H:i:s", $epoch_seconds) . " UTC\n";

echo gmdate("l, F j, Y \a\t g:i A", $epoch_seconds) . " UTC\n";

$dt = new DateTimeImmutable('@' . $epoch_seconds);
echo $dt->format('c') . "\n";

Always use gmdate() not date()date() applies the server's local timezone producing inconsistent output across different hosting environments.

How to Convert Epoch to Human Readable Date in SQL

PostgreSQL:

SELECT TO_TIMESTAMP(1783941653) AT TIME ZONE 'UTC';

SELECT TO_CHAR(
  TO_TIMESTAMP(1783941653) AT TIME ZONE 'UTC',
  'YYYY-MM-DD HH24:MI:SS'
) AS readable_date;

MySQL:

SELECT FROM_UNIXTIME(1783941653) AS readable_date;

SELECT FROM_UNIXTIME(1783941653, '%Y-%m-%d %H:%i:%s') AS readable_date;

SQLite:

SELECT datetime(1783941653, 'unixepoch') AS readable_date;

SQL Server:

SELECT DATEADD(SECOND, 1783941653, '1970-01-01') AS readable_date;

How to Convert Epoch to Human Readable Date in Java

import java.time.Instant;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;

long epochSeconds = 1783941653L;

Instant instant = Instant.ofEpochSecond(epochSeconds);
System.out.println(instant.toString());

String formatted = DateTimeFormatter
    .ofPattern("yyyy-MM-dd HH:mm:ss")
    .withZone(ZoneOffset.UTC)
    .format(instant);
System.out.println(formatted + " UTC");

Milliseconds:

import java.time.Instant;

long epochMs = 1783941653000L;
Instant instant = Instant.ofEpochMilli(epochMs);
System.out.println(instant.toString());

How to Convert Epoch to Human Readable Date in Bash

Linux (GNU date):

date -d @1783941653 --utc '+%Y-%m-%d %H:%M:%S UTC'

macOS (BSD date):

date -r 1783941653 '+%Y-%m-%d %H:%M:%S'

Convert milliseconds in Bash:

epoch_ms=1783941653000
epoch_s=$((epoch_ms / 1000))
date -d @$epoch_s --utc '+%Y-%m-%d %H:%M:%S UTC'

How to Convert Epoch to Human Readable Date in Go

package main

import (
    "fmt"
    "time"
)

func main() {
    epochSeconds := int64(1783941653)
    t := time.Unix(epochSeconds, 0).UTC()
    fmt.Println(t.Format("2006-01-02 15:04:05 UTC"))
    fmt.Println(t.Format(time.RFC3339))
}

Human Readable Time Unit Reference

Understanding how many seconds make up common time units helps when working with epoch values:

Time UnitSeconds
1 Second1
1 Minute60
1 Hour3,600
1 Day86,400
1 Week604,800
1 Month (30.44 days avg)2,629,743
1 Year (365.24 days avg)31,556,926

To calculate how many days have passed since a known epoch value, subtract it from the current epoch time and divide by 86,400.

What Is the Human Readable Timestamp Format?

A human readable timestamp follows one of several standard formats:

ISO 8601 (recommended): 2026-07-17T12:00:00Z or 2026-07-17T12:00:00+00:00 — the international standard used in APIs, databases, and data exchange. The Z suffix means UTC.

RFC 2822: Thu, 17 Jul 2026 12:00:00 +0000 — used in email headers and HTTP date headers.

Unix date string: Thu Jul 17 12:00:00 UTC 2026 — output of Bash date command.

Locale-specific: July 17, 2026 at 12:00 PM — for display to end users in their local format.

Discord timestamp: Uses epoch values wrapped in markdown syntax for automatic timezone conversion for every viewer. Use the Discord Timestamp Generator to convert any epoch value to a Discord timestamp code instantly.

Pro Tip:For any system that exchanges timestamps between services or stores them in databases, always use ISO 8601 format with explicit UTC designation (the Z suffix or +00:00 offset). This eliminates timezone ambiguity, is universally parseable by every programming language, and sorts correctly as a string without conversion.

How Does the Epoch Time Converter Handle Negative Values?

Negative epoch values represent dates before January 1 1970. For example -86400 represents December 31, 1969 at 00:00:00 UTC — exactly one day before the Unix epoch.

Most modern programming languages handle negative epoch values correctly:

import datetime
negative_epoch = -86400
dt = datetime.datetime.utcfromtimestamp(negative_epoch)
print(dt)
const negativeEpoch = -86400;
const date = new Date(negativeEpoch * 1000);
console.log(date.toUTCString());

Older systems and 32-bit databases may not handle negative timestamps correctly — always test explicitly if your application needs to represent pre-1970 dates.

How Does Epoch Time Connect to Discord Timestamps?

Discord timestamps use epoch values directly. The Discord timestamp tag format wraps a 10-digit Unix epoch value in seconds with a format code — and Discord converts it to each viewer's local timezone automatically.

To convert any epoch value to a Discord timestamp tag:

  1. Verify your epoch value is 10 digits (seconds) — divide by 1,000 if it has 13 digits
  2. Go to the Discord Timestamp Generator
  3. The tool accepts epoch values directly and generates all 7 Discord timestamp format codes simultaneously
  4. Copy and paste into any Discord message

The Unix Timestamp Converter also converts epoch values to human-readable dates and can be used as a quick verification step before building Discord timestamp codes.

Common Mistakes to Avoid

  • Passing milliseconds where seconds are expected. A 13-digit value used in TO_TIMESTAMP() in PostgreSQL or FROM_UNIXTIME() in MySQL displays a date in the year 56,000. Always divide by 1,000 first when your value is 13 digits.
  • Forgetting to multiply by 1,000 in JavaScript. new Date(epochSeconds) treats the value as milliseconds — use new Date(epochSeconds * 1000) when your input is in seconds.
  • Using date() instead of gmdate() in PHP. date() applies the server local timezone — use gmdate() for consistent UTC output.
  • Not specifying UTC in Python. datetime.fromtimestamp() without a timezone argument uses the system local timezone — always pass tz=datetime.timezone.utc or use utcfromtimestamp().
  • Displaying epoch values directly to users. Raw epoch numbers like 1783941653 are meaningless to end users — always convert to a human-readable format before display.
  • Storing human-readable strings instead of epoch values. Store the raw epoch integer in databases for efficiency and timezone neutrality — convert to human-readable only at the display layer.

Related Guides

Convert any epoch value instantly with the Unix Timestamp Converter, generate a Discord timestamp from any epoch value with the Discord Timestamp Generator, or decode any Discord Snowflake ID with the Discord Snowflake ID Decoder.

Frequently Asked Questions

Check the digit count — 10 digits means seconds, 13 means milliseconds (divide by 1,000). Then use your language's conversion function: JavaScript new Date(seconds * 1000).toUTCString(), Python datetime.utcfromtimestamp(seconds), PHP gmdate('Y-m-d H:i:s', seconds). For instant conversion use the [Unix Timestamp Converter](/unix-timestamp-converter).
An epoch time converter is a tool or function that translates a raw epoch number — a count of seconds since January 1 1970 — into a human-readable date and time string. It works bidirectionally: epoch to date and date to epoch. The [Unix Timestamp Converter](/unix-timestamp-converter) converts any value instantly.
To calculate a date from an epoch value, add the counted seconds to the Unix epoch reference point (January 1 1970). In practice every programming language has a built-in function that does this automatically — Python datetime.utcfromtimestamp(), JavaScript new Date(epoch * 1000), PHP gmdate(). No manual calendar calculation is needed.
An epoch value like 1783941653 is read as "1 billion, 783 million, 941 thousand, 653 seconds have elapsed since January 1 1970." The approximate date is readable from the magnitude — values around 1.78 billion are mid-2026. To get the exact date use the [Unix Timestamp Converter](/unix-timestamp-converter) or your programming language's conversion function.
The recommended format for a human-readable timestamp is ISO 8601: 2026-07-17T12:00:00Z for UTC or 2026-07-17T12:00:00+00:00 with an explicit offset. Other common formats include RFC 2822 (Thu, 17 Jul 2026 12:00:00 +0000) and Unix date strings (Thu Jul 17 12:00:00 UTC 2026). Always include the timezone designation in any human-readable format to prevent ambiguity.
In Python use datetime.datetime.utcfromtimestamp(epoch_seconds) for UTC output, or datetime.datetime.fromtimestamp(epoch_seconds, tz=datetime.timezone.utc) for timezone-aware output. For milliseconds divide by 1,000 first: datetime.datetime.utcfromtimestamp(epoch_ms / 1000). Format the result with .strftime('%Y-%m-%d %H:%M:%S').
In JavaScript use new Date(epochSeconds * 1000).toUTCString() for UTC output or new Date(epochSeconds * 1000).toISOString() for ISO 8601. If your value is already in milliseconds (13 digits from Date.now()) use new Date(epochMs) directly without multiplying.
Discord timestamp codes use epoch values directly — a 10-digit Unix epoch in seconds wrapped in Discord's markdown syntax displays as the correct local time for every viewer automatically. Convert any epoch value to a Discord timestamp using the [Discord Timestamp Generator](/). Verify your epoch value is 10 digits (seconds) before pasting — divide by 1,000 if it has 13 digits.
Epoch to UTC means converting a raw epoch value to a UTC date and time string. Since epoch time is always referenced to UTC (midnight January 1 1970 UTC), conversion to UTC is the most direct output — the raw seconds count is added to the UTC epoch reference point to produce a UTC date. Use datetime.utcfromtimestamp() in Python, .toUTCString() in JavaScript, or gmdate() in PHP.

Ready to generate Discord timestamps?

Open the Generator

Did You Miss These?

Discord Guide

Generate a Discord Timestamp

Free tool — all 7 formats, live Discord preview, auto timezone detection.

Open Generator →
Discord Guide12 min read

Jul 17, 2026

Discord Timestamp — The Complete Guide to All 7 Formats

Everything about Discord timestamps — all 7 format codes, the syntax, how to generate codes, the @time feature, troubleshooting, and why timestamps beat manual timezone conversion.

Read Article →
Discord Guide12 min read

Jul 17, 2026

What Is Epoch Time? Complete Guide to Unix Timestamps and January 1 1970

Epoch time is the total number of seconds since January 1 1970 at 00:00:00 UTC. Complete guide covering what epoch time is, why 1970 was chosen, how it works, and code examples.

Read Article →
Discord Guide11 min read

Jul 17, 2026

Unix Timestamp — Complete Guide to Epoch Time and How It Works

A Unix timestamp is a single integer counting seconds since January 1 1970 UTC. Complete guide covering format, precision levels, code examples in every language, and the Year 2038 problem.

Read Article →
Discord Guide10 min read

Jul 17, 2026

Timestamp to Date — How to Convert Any Timestamp to a Readable Date

How to convert any Unix timestamp to a readable date in JavaScript, Python, PHP, SQL, Java, Excel, and Bash. Includes milliseconds vs seconds fix and timezone best practices.

Read Article →