Discord Timestamp Formats Explained
A complete guide to Discord's 9 timestamp formats: the <t:UNIX:F> syntax, how each token looks, why Discord auto-converts timezones, and practical usage for events and countdowns.
Table of contents
TL;DR: Discord timestamps use the syntax <t:UNIX_SECONDS:FORMAT>. Replace UNIX_SECONDS with a Unix timestamp in seconds and FORMAT with one of 9 tokens: t, T, d, D, f, F, s, S, or R. Discord renders the result in each viewer’s own timezone automatically.
How <t:UNIX:F> works
When Discord processes a message containing <t:1778406728:F>, it reads the Unix timestamp (seconds since January 1, 1970 UTC) and renders it using the viewer’s local timezone and locale settings. The raw syntax is invisible; readers only see the formatted time.
This means you can set a meeting time once and share it to a global server — everyone sees the correct local time without any mental arithmetic.
The full syntax is:
<t:UNIX_SECONDS:FORMAT_TOKEN>
- UNIX_SECONDS — a Unix timestamp in whole seconds (10 digits). If your value is in milliseconds (13 digits), divide by 1000 first.
- FORMAT_TOKEN — one of the 9 single-letter tokens described below.
All 9 formats explained
The table below uses 1778406728 as the example Unix value, which is Sunday, May 10, 2026 at 09:52:08 UTC.
| Syntax | Token | Name | Example output (viewer in New York, EDT) |
|---|---|---|---|
<t:1778406728:t> | t | Short time | 5:52 AM |
<t:1778406728:T> | T | Medium time | 5:52:08 AM |
<t:1778406728:d> | d | Short date | 5/10/26 |
<t:1778406728:D> | D | Long date | May 10, 2026 |
<t:1778406728:f> | f | Long date, short time | May 10, 2026 at 5:52 AM |
<t:1778406728:F> | F | Full date, short time | Sunday, May 10, 2026 at 5:52 AM |
<t:1778406728:s> | s | Short date, short time | 5/10/26, 5:52 AM |
<t:1778406728:S> | S | Short date, medium time | 5/10/26, 5:52:08 AM |
<t:1778406728:R> | R | Relative | in 3 hours (updates live) |
t / T — Short and medium time
Use these when the date is implied by context (such as “see you at <t:1778406728:t>”). The short form (t) omits seconds; the medium form (T) includes them. Neither shows the day or date.
d / D — Short and long date
Useful for deadlines or reference dates where the time is irrelevant. The short form (d) uses a locale-specific numeric format (M/D/YY in en-US, no zero-padding). The long form (D) spells out the month name and uses a four-digit year.
f / F — Long and full date/time
The most complete formats. f renders the written month, day, year, and time with an ” at ” separator — May 10, 2026 at 5:52 AM. F adds the full weekday name — Sunday, May 10, 2026 at 5:52 AM. Use F for important events where you want to avoid any ambiguity about which day is meant.
s / S — Compact date/time
s combines the short numeric date and short time: 5/10/26, 5:52 AM. S adds seconds to the time part: 5/10/26, 5:52:08 AM. These are the most space-efficient date-time formats — useful when you need both date and time in a narrow column or tight message layout.
R — Relative
This is the most dynamic token. Discord displays a human-readable description of the time relative to now: “in 3 hours”, “5 minutes ago”, “a day ago”, “3 months ago”. The text updates in real time as the user views the message.
Use R for:
- Countdown timers (“server goes live
<t:1778406728:R>”) - Elapsed time (“incident started
<t:1778406728:R>”) - Soft deadlines (“submissions close
<t:1778406728:R>”)
Why Discord auto-converts timezones
Discord reads the raw Unix timestamp — which is always in UTC — and converts it to the viewer’s local timezone before rendering. The viewer’s device supplies the timezone; Discord does not need to know or store it.
This is the key advantage of <t:...> over plain text. Writing “the event is at 3 PM EST” requires every reader to know their own offset from EST. Using a timestamp, the reader in London sees “10:52 AM”, the reader in Tokyo sees “6:52 PM”, and the reader in Los Angeles sees “2:52 AM” — all correct, all automatic.
Practical examples
Event announcements
Our community stream starts <t:1778406728:F>.
Add it to your calendar and join us at <t:1778406728:t>.
Renders as something like:
Our community stream starts Sunday, May 10, 2026 at 5:52 AM. Add it to your calendar and join us at 5:52 AM.
Both times adapt to each viewer’s timezone. The F format gives the full context, and the t format gives a quick reference.
Deadlines and countdowns
Bug reports are due <t:1778493128:D> (<t:1778493128:R>).
Renders as:
Bug reports are due May 11, 2026 (in 23 hours).
The R portion ticks down live, creating a built-in countdown without any bot setup.
Bot launch and maintenance windows
⚠️ Scheduled maintenance starts <t:1778406728:t> and ends approximately <t:1778413928:t>.
Combining two timestamps to show a window communicates the full schedule without needing to list multiple timezones.
Troubleshooting
The timestamp does not render — it shows <t:...> literally
Discord only renders timestamp syntax in message content and embed descriptions/fields. It does not work in embed titles, author fields, footers, or notification text. Confirm you are pasting the syntax into a regular message or a supported embed field.
The time is off by exactly one hour The viewer’s device may be on the wrong side of a DST transition, or the Unix timestamp you used was calculated in local time instead of UTC. Always confirm your Unix value at epochkit’s unix converter before using it.
The Unix value is 13 digits
JavaScript’s Date.now() returns milliseconds. Divide by 1000 before using the value in a Discord timestamp: Math.floor(Date.now() / 1000).
The relative time says “less than a minute ago” immediately The Unix timestamp is in the past. Check that you intended a future time and that your timezone offset is correct when calculating the value.
Related tools
Use epochkit’s Discord Timestamp Generator to pick a date and time, select any of the 9 formats, and copy the ready-to-paste syntax — with a live preview of how Discord will render it.