What are Discord timestamps?
Discord supports a special syntax for inline timestamps: <t:UNIX_TIMESTAMP:FORMAT>. When a viewer sees a message containing this tag, Discord's client converts it into a localized date or time string in that viewer's time zone. The relative format (:R) auto-updates as time passes, so a message saying "starts in 2 hours" will, two hours later, say "starting now" and then "30 seconds ago" — all without anyone editing the message.
This is useful any time you're communicating about a moment in time across time zones. Server announcements, event schedules, deadlines, "when does the sale end" questions — anything that historically required typing a string like "8 PM EST (1 AM CET) (5 PM PST)" can be replaced with a single timestamp tag that does the conversion automatically for everyone.
The seven format codes
Discord supports seven format codes. The letter at the end of the tag determines how the date is rendered:
| Code | Style | Example output (English locale) |
|---|---|---|
| t | Short time | 9:01 PM |
| T | Long time | 9:01:00 PM |
| d | Short date | 05/11/2026 |
| D | Long date | May 11, 2026 |
| f | Short date/time (default if no code given) | May 11, 2026 9:01 PM |
| F | Long date/time | Monday, May 11, 2026 9:01 PM |
| R | Relative time | in 3 hours, 2 days ago |
If you omit the format code entirely (just <t:1735689600>), Discord defaults to :f (short date and time). The exact wording for each format depends on the viewer's locale — a viewer with their Discord set to French will see "lundi 11 mai 2026 21:01" for the same :F code that an English viewer sees as "Monday, May 11, 2026 9:01 PM".
Common use cases
Different formats fit different situations:
- Event announcements:
:Fgives the full date and weekday, which is perfect for "the tournament is on Monday, May 11, 2026 9:01 PM your time." - Countdowns to a stream or launch:
:Rauto-updates, so a single message says "in 4 hours" and later "starting now" without an edit. - Deadline reminders:
:ffor the wall-clock date plus:Rfor the urgency. The combination "Due May 15 (in 4 days)" tells the reader both the absolute time and the relative urgency. - Service status posts:
:Tshows the second-precision time, useful for "Service was restored at 9:01:00 PM." - Daily schedules:
:tfor time only, when the date is implicit ("the daily standup is at 9:00 AM").
How to use them in messages
The workflow is: pick a date in this generator, copy the tag, paste it into your Discord message. You can mix multiple tags in one message — for example, The sale ends <t:1735776000:R> (<t:1735776000:F>) renders as "The sale ends in 2 days (Sunday, January 4, 2026 12:00 AM)" — relative urgency with the absolute time as a backup.
The tag works inside any text message in any channel where you can post, and it renders the same in DMs as in server messages. There's no need for special formatting markers around it.
For Discord bot developers
If you're building a bot, generate timestamp tags the same way: take a Unix timestamp (seconds, not milliseconds), wrap it as <t:UNIX:FORMAT>, and include the resulting string in your message content. Most Discord libraries (discord.js, discord.py, JDA, serenity) don't have a special API for this because no API is needed — it's just text.
A common pattern: store event times as Unix timestamps in your database, and render them as Discord tags when posting messages. This pushes the locale-specific formatting work onto Discord's clients, which avoids the perpetual headache of "what time zone does this user prefer?" in your bot's settings.
Worth noting: timestamps in embeds (the timestamp field) are different from inline timestamp tags. Embed timestamps render as a footer date in the embed itself, while <t:> tags work inline in any text. Use the embed field for "this embed describes an event at this time," and use inline tags for "this sentence references this moment."
Limitations and edge cases
- No timezones in the past or future: Discord uses the viewer's current time zone for all renderings, even for historical dates. If you tag a date that happened during DST in a region that changed its DST rules since, the rendering may not match what was actually displayed locally on that day.
- Negative timestamps mostly work: dates before 1970 (Unix epoch 0) generally render correctly across Discord clients, but very old dates can occasionally trigger formatting bugs in older client versions. Modern Discord handles them fine.
- Year 9999+ doesn't work: Discord's parser caps timestamps at the JavaScript Date max around year 9999. Very large Unix values render as a literal string instead of a date.
- Locale dependency: the exact wording is the viewer's locale, not yours. A French viewer sees French dates, a Japanese viewer sees Japanese dates — usually a feature, occasionally surprising if you're used to English-only servers.
- Spoiler tags: wrapping a timestamp in
||spoiler tags||hides the rendered output but the original tag syntax shows briefly while loading.
Related tools
If you're working with timestamps for things other than Discord, you might also need:
Embed this tool on your site
If you maintain bot documentation, a server guide, or any community resource page, you can embed this timestamp generator directly — it's free to use on any site. Click Embed this tool at the bottom of the generator to copy the iframe snippet, and keep the credit link that ships with it.