Skip to content
← Guides

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:

  • t and T for the time alone, short or with seconds
  • d and D for the date alone, numeric or written out
  • f and F for both, with F adding the weekday
  • R for 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.