Discord Timestamp Generator
Pick a moment and copy the markup. Discord renders it in each reader's own timezone, so you never write “8pm EST (1am UTC)” again. All seven formats, generated in your browser - no account, nothing sent anywhere.
Generate your timestamp
Unix timestamp (seconds): 1791368460
<t:1791368460:t><t:1791368460:T><t:1791368460:d><t:1791368460:D><t:1791368460:f><t:1791368460:F><t:1791368460:R>How the markup is built
A Discord timestamp is three parts inside angle brackets: <t:, a Unix timestamp, and an optional style letter. So <t:1618928400:F> is the instant 1,618,928,400 seconds after 1 January 1970 UTC, rendered in the long date and time style.
The important word is instant. The markup does not store “4:20pm” or “London”. It stores a single point on the world clock, and every Discord client converts that point into its own reader's locale and timezone as the message renders. That is why one announcement reads correctly for a server spread across twelve countries, and why editing nothing still shows the right time next week.
Omit the style and Discord uses f, short date and time. The colon before the style is required when you include one.
The seven styles, side by side
Every style renders the same instant. The choice is about how much context the reader needs, and whether the number should keep moving.
| Style | Name | Renders like | Reach for it when |
|---|---|---|---|
| :t | Short Time | 16:20 | Hours and minutes only. Best inside a sentence. |
| :T | Long Time | 16:20:30 | Adds seconds. Useful for drop times and raid starts. |
| :d | Short Date | 20/04/2021 | Numeric date, ordered by the reader's locale. |
| :D | Long Date | 20 April 2021 | Spelled-out month. No ambiguity between 04/05 and 05/04. |
| :f | Short Date/Time | 20 April 2021 16:20 | The default when you omit the style. |
| :F | Long Date/Time | Tuesday, 20 April 2021 16:20 | Adds the weekday. Good for announcements. |
| :R | Relative Time | 2 months ago | Counts up or down live, and keeps counting. |
Three mistakes that break a timestamp
Milliseconds instead of seconds. This is the one that catches almost everybody. Date.now() returns milliseconds, Discord wants seconds, and a value that is a thousand times too large lands far enough in the future that Discord stops trying and prints the raw markup as text. Divide by 1000 and floor it.
A missing colon before the style. <t:1618928400F> is not a timestamp with a style, it is a malformed number. The colon separates the two fields and is not optional once a style is present.
Using it somewhere that is not message content. Timestamps render in messages, embeds and webhook payloads. They do not render in channel names, topics, nicknames or the server description, because those fields are not passed through the message formatter at all.
Countdowns, events and bots
The relative style is the one worth designing around. Because it recalculates every time the message renders, a single pinned announcement counts down to a launch and then keeps counting up afterwards, without anyone editing it. Pair it with a long date and time so the reader gets both “in 3 days” and the actual calendar slot.
If a bot is posting the message, generate the seconds value server-side and drop it into the string. Anything that can post to a channel can post a timestamp, including an incoming webhook, which makes this the cheapest possible way to make automated announcements read correctly for an international community. A Discord chatbot that takes event signups can confirm each one with a timestamp so every member sees the start time in their own clock.
For the API limits that govern how often a bot or webhook may post, see the Discord API limits reference, and if messages are not arriving at all, the Discord error code directory covers the gateway and JSON codes one by one.
What this tool does with your data
Nothing. The conversion is arithmetic on a date you typed, performed by your own browser. No date is transmitted to Conferbot, nothing is written to storage, and there is no account, no email gate and no usage limit. You can disconnect from the network after the page loads and the tool still works.
It is free because tools like this are how people find us. If you go on to build something conversational, webhooks are usually the next thing to understand, and our Discord chatbot templates are complete flows you can open and edit.
Discord timestamp questions
What is a Discord timestamp?
It is a piece of message markup written as <t:1618928400:F>. Discord replaces it with a formatted date and time when the message renders, using each reader's own locale and timezone. One message therefore shows 4:20pm to a reader in London and 11:20am to a reader in New York, without you writing either of those times.
Why does my timestamp show as plain text instead of a date?
Almost always because the number is in milliseconds. JavaScript's Date.now() returns milliseconds, and Discord expects seconds, so a value pasted straight from the console lands tens of thousands of years in the future and Discord gives up and prints the raw markup. Divide by 1000 and drop the decimals. This generator already outputs seconds.
Which timestamp style should I use?
Use F for announcements, because it names the weekday and removes any doubt about which day you mean. Use R for anything with a countdown, since it keeps updating as the moment approaches. Use t inside a sentence where the date is already established. The default when you omit the style entirely is f, short date and time.
Do Discord timestamps update automatically?
Yes, and that is the point. The markup stores an instant, not a rendered string, so the client re-renders it in the reader's current timezone every time the message is displayed. Relative timestamps in the R style recalculate continuously, counting down to an event and then counting up after it has passed.
Do timestamps work in embeds and webhook messages?
Yes. Timestamps are ordinary message content, so anywhere Discord renders message text it will render a timestamp - normal messages, embed descriptions and fields, and payloads sent through an incoming webhook. They do not work in places that are not message content, such as channel names, the server description or a user's nickname.
Can I use a timestamp to schedule when a message is sent?
No. A timestamp only changes how a date is displayed inside a message that already exists; it has no effect on when that message posts. Scheduling is a separate job for a bot or an automation platform, which decides the send time and can include a timestamp in the message body so readers see it in their own timezone.