To convert an epoch timestamp to a Discord timestamp wrap your 10-digit Unix number in Discord's syntax: <t:YOUR_EPOCH:FORMAT_CODE> — then paste it into any Discord message. Discord renders it as a dynamic tag showing the correct local time for every viewer automatically.
If you have an epoch time — a raw Unix timestamp number like 1783344824 — and you want to turn it into a Discord timestamp tag that displays correctly for everyone in your server, the process is straightforward. You wrap the number in Discord's markdown syntax, add a format code, and paste it into any message.
The result is a dynamic tag that automatically converts to each viewer's local timezone — no timezone math required on your end.
Since January 2026, Discord also added the @time mention feature — type @time in any message box, pick a date and time from the built-in picker, and Discord generates the correctly formatted Discord timestamp tag for you. But if you already have a raw epoch number you want to use directly, this guide covers exactly how to convert it.
What Is an Epoch Timestamp?
An epoch timestamp — also called a Unix timestamp or Unix time — is a single integer representing the total number of seconds elapsed since the Unix epoch: midnight on January 1 1970 at 00:00:00 UTC.
For example, 1783344824 represents a specific moment in July 2026. This number is the same everywhere on Earth simultaneously — it's timezone-neutral by design.
Discord uses this same epoch system internally for all its timestamps. When you create a Discord timestamp tag, you're giving Discord a raw epoch number and telling it how to display that moment to each viewer.
The Conversion Syntax
Every Discord timestamp tag follows this exact syntax:
<t:UNIX_TIMESTAMP:FORMAT_CODE>
To convert an epoch number to a Discord timestamp:
- Take your 10-digit Unix timestamp in seconds
- Replace
UNIX_TIMESTAMPwith your number - Replace
FORMAT_CODEwith one of the 7 style flags below - Paste the complete tag into any Discord message
Example using epoch 1783344824:
<t:1783344824:F>
This displays as "Tuesday, July 7, 2026 at 9:04 AM" — automatically converted to each viewer's local timezone.
All 7 Discord Format Codes
| Style Flag | Syntax Example | Discord Display Example |
|---|---|---|
| Short Time | <t:1783344824:t> | 9:04 AM |
| Long Time | <t:1783344824:T> | 9:04:00 AM |
| Short Date | <t:1783344824:d> | 07/07/2026 |
| Long Date | <t:1783344824:D> | July 7, 2026 |
| Short Date/Time | <t:1783344824:f> | July 7, 2026 at 9:04 AM |
| Long Date/Time | <t:1783344824:F> | Tuesday, July 7, 2026 at 9:04 AM |
| Relative Time | <t:1783344824:R> | 4 months ago / in 3 days |
If you omit the format code entirely and use just <t:1783344824>, Discord defaults to the Long Date/Time format (:F).
Choosing the Right Format Code
- Use
:Rfor live countdowns and recency — it auto-updates as time passes - Use
:ffor most event announcements — clean date and time, easy to read - Use
:Ffor formal announcements where the day of the week matters - Use
:Dfor birthday lists and date-only references - Use
:twhen the date is already known and you only need the time
Step-by-Step Conversion
Step 1 — Get your epoch timestamp
If you don't already have an epoch number, use the Unix Timestamp Converter to convert any date and time to a 10-digit Unix timestamp in seconds. Alternatively, use the Discord Timestamp Generator to pick your date and time visually and skip the manual conversion entirely.
Step 2 — Check the digit count
Your epoch number must be 10 digits — for example 1783344824. This confirms it's in seconds. If your number is 13 digits — for example 1783344824000 — it's in milliseconds. Delete the last 3 digits or divide by 1000 before using it. A 13-digit number in a Discord timestamp tag will display a date thousands of years in the future.
Step 3 — Wrap it in Discord syntax
Choose your format code and build the tag:
<t:1783344824:f>
Step 4 — Paste into Discord
Paste the complete tag into any Discord message — server channel, DM, bot response, or webhook message. Discord renders it immediately as a clickable dynamic timestamp.
Step 5 — No timezone math needed
Discord automatically calculates the correct local timezone for whoever reads the message. You never need to add or subtract timezone offsets from your epoch number. The raw Unix timestamp is timezone-neutral — Discord handles the conversion entirely.
How to Get an Epoch Timestamp from a Specific Date
If you're starting from a date and time rather than an existing epoch number:
Easiest method: Use the Discord Timestamp Generator — pick your date and time from a visual calendar, select your format code, and copy the complete ready-to-paste Discord timestamp tag.
Manual method: Use the Unix Timestamp Converter — enter your date and time, get the 10-digit epoch number in seconds, then wrap it in the syntax yourself.
In JavaScript:
const epoch = Math.floor(new Date('2026-07-07T09:04:00').getTime() / 1000);
const discordTag = `<t:${epoch}:f>`;
In Python:
import datetime
dt = datetime.datetime(2026, 7, 7, 9, 4, 0)
epoch = int(dt.timestamp())
discord_tag = f"<t:{epoch}:f>"
Note the divide by 1000 in JavaScript — Date.getTime() returns milliseconds, so you must convert to seconds before wrapping in the Discord timestamp syntax.
Using Epoch Timestamps in Bots and Webhooks
If your Discord bot or webhook generates messages automatically, you can include epoch-based Discord timestamp tags directly in the message content string. Discord renders them the same way as manually typed tags.
For bot development, generate the epoch number programmatically from your event date, verify it's 10 digits (divide by 1000 if your language returns milliseconds), then interpolate it into the tag string before sending. The Discord Snowflake ID Decoder can also help if you need to extract an epoch reference date from an existing Discord message ID or user ID.
Common Mistakes to Avoid
Using milliseconds instead of seconds — The single most common error. Your epoch number must be 10 digits (seconds) — not 13 digits (milliseconds). If your number is 13 digits, delete the last 3 or divide by 1000.
Adding timezone offsets manually — Never add or subtract hours from your epoch number to account for timezones. The raw Unix timestamp is timezone-neutral — Discord handles all timezone conversion automatically for each viewer.
Forgetting the colon before the format code — The syntax requires a colon between your epoch number and the format code. Missing it breaks the tag entirely and it displays as plain text.
Using the wrong case for format codes — :f and :F are completely different formats — lowercase :f is Short Date/Time, uppercase :F is Long Date/Time. :t and :T also differ. The format codes are case-sensitive.
Pasting the tag in non-message fields — Discord timestamp syntax only renders inside message text fields — it won't display correctly in channel names, server descriptions, role names, or other non-message areas.
Using a negative epoch number — Unix timestamps can technically be negative for dates before January 1 1970 but Discord does not support negative epoch values. Only use positive 10-digit numbers.
Related Guides
- What Is a Unix Timestamp?
- Date to Unix Timestamp — Complete Guide
- Discord Dynamic Timestamps — Complete Format Guide
- Discord Timestamp Cheat Sheet
Also try our free tools:
- Unix Timestamp Converter — convert any date to an epoch number instantly
- Discord Timestamp Generator — generate a complete Discord timestamp tag visually
- Discord Countdown Generator — build live countdown timers
Frequently Asked Questions
Ready to generate Discord timestamps?
Open the Generator