Discord timestamps explained
· 5 min read
The message that answers its own follow-up questions
Post "movie night at 8 PM" in any server with members from more than one country and the replies write themselves: whose 8 PM? Which day is that for me? Is that with or without daylight saving? Plain-text times break the moment an audience spans timezones, and most Discord servers do.
Discord ships a fix for this that surprisingly few people use. It is a short code, <t:1756843200:F>, typed into an ordinary message. When the message renders, the code turns into a date and time in each reader's own timezone. One code, written once, correct for everyone. The questions never arrive.
What the code is made of
Inside the angle brackets sit three parts: a t, a number, and a style letter. The number is a Unix timestamp, the count of seconds since January 1st, 1970. That sounds like a developer detail, but it is exactly why the feature works: a plain count of seconds carries no timezone, no daylight saving rule and no date format. Each reader's device turns it into a display at the last moment.
One rule matters: the number must be seconds, not milliseconds. Thirteen digits where ten belong is the single most common reason a code shows up as literal text instead of a date.
Seven styles, one worth remembering
The trailing letter picks the rendering:
tandTfor the time alone, short or with secondsdandDfor the date alone, numeric or written outfandFfor both, withFadding the weekdayRfor the distance from now, such as "in 2 hours"
R is the one to remember. It keeps counting on its own: "in 3 days" becomes "tomorrow", then "in 4 hours", then "2 minutes ago", and nobody edits the message in between. Servers run entire bots that edit a countdown message every minute; this does the same job with zero API calls and zero drift.
A pattern that works well in announcements is to combine two styles: <t:…:F> for the full moment, followed by <t:…:R> in parentheses. Readers get "Saturday, September 6, 2026 at 8:00 PM (in 4 days)", and both halves are right for every one of them.
Where it renders, and where it stays plain text
The replacement happens in regular messages, in embed descriptions and fields, in webhook messages and in bot replies. It does not happen where Discord skips markdown altogether: channel names, status texts, poll options and event titles all show the code literally, brackets included.
One thing confuses almost everyone the first time: you and the person next to you see different times in the same message. That is not a bug, that is the entire point. Same instant, two clocks.
Generating the code without doing math
Nobody converts dates to second counts in their head. Our timestamp generator in the tools section takes a date and time and hands back all seven styles with a live preview and a copy button, and the page URL carries the chosen moment so you can share it. Discord itself also shows a ready-made timestamp when you create a server event and open the share view.
If you write bots, the conversion is one line: Math.floor(Date.now() / 1000) in JavaScript, int(time.time()) in Python. Wrap the result in the code, pick a style, done. Teaching your bot to answer with timestamps instead of formatted strings is the one change that makes its schedule output correct in every timezone at once.