Discord Timestamp Generator

Turn any date and time into Discord's dynamic timestamp codes, with all seven styles, a live preview and one-click copy, entirely in your browser.

🌐 Español

Unix time: 1788050460 seconds — the style-less form <t:1788050460> renders the same as :f

Discord Timestamp Generator
StyleCode to pasteLooks like (to you)Copy
Short Time :tTime only, hours and minutes.<t:1788050460:t>12:41 AM
Long Time :TTime only, including seconds.<t:1788050460:T>12:41:00 AM
Short Date :dNumeric date, no time.<t:1788050460:d>8/30/26
Long Date :DDate with the month spelled out, no time.<t:1788050460:D>August 30, 2026
Short Date/Time :fDate and time together. This is what Discord uses when you leave the style off.<t:1788050460:f>August 30, 2026 at 12:41 AM
Long Date/Time :FWeekday, full date and time.<t:1788050460:F>Sunday, August 30, 2026 at 12:41 AM
Relative Time :RCounts up or down on its own, e.g. "in 3 hours".<t:1788050460:R>4 seconds ago

The preview column is an approximation of how Discord renders each style, drawn in your own browser's language and time zone — it will not match Discord character for character. Everyone who reads your message sees the same instant on their own clock, which is the whole point. The relative style keeps counting, so its preview refreshes every second while this page is open.

šŸ”’ Private by design: everything runs locally in your browser and never uploaded to any server.

Seven style letters, and what each row of the table gives you

Discord’s dynamic timestamp is literal text you type into a message: an angle bracket, t, a colon, a Unix time in seconds, optionally another colon and a single style letter, then a closing bracket. The client swaps it for a rendered date on the way to every reader’s screen, in that reader’s language and zone.

The table lists all seven documented styles in Discord’s own order. t is short time, hours and minutes. T is long time, with seconds. d is a numeric date. D spells out the month. f puts date and time together, and F adds the weekday to that. R is the relative one that counts down and then up on its own.

There is an eighth thing to know: the style suffix is optional. Post <t:1789245000> with nothing after the number and Discord renders it as though you had written f. The line above the table shows you that style-less form alongside the raw seconds, which is handy when you are hand-writing the code into a bot payload.

A worked example, seconds and all

Set the picker to 12 September 2026 at 20:30 with your browser in UTC and the tool reports a Unix time of 1789245000. The F row then hands you <t:1789245000:F>, and the preview column, in a US English locale, reads ā€œSaturday, September 12, 2026 at 8:30 PMā€. The R row for the same instant, viewed ten hours earlier, reads ā€œin 10 hoursā€.

Move that same wall-clock time to a zone two hours ahead of UTC and the number changes to 1789237800, because 20:30 in that zone is an earlier absolute instant. That is the correct behavior and the reason the zone label sits next to the picker. The code encodes a moment, not a clock reading.

Picking the instant, and the round-minute detail

  1. Set the Date & time field. Its label carries your browser’s IANA zone name, so you can see which clock you are working in.
  2. Or skip typing and press Now, +1 hour, +6 hours, +1 day or +1 week to jump to a round offset from the current moment.
  3. Read down the Code to paste column and find the style you want.
  4. Press Copy on that row, then paste the code straight into your Discord message and send it.

One detail worth knowing about those buttons: the value they write into the picker is precise only to the minute, so pressing Now at 13:45:37 gives you 13:45:00. If you genuinely need the seconds, the field accepts them and the tool will encode them.

The preview column is an approximation on purpose

Each preview is produced with Intl.DateTimeFormat in your own locale and zone, mapped to a plausible option set per style: short time style for t, medium for T, short date for d, long date for D, long date plus short time for f, and full date plus short time for F. It is a demonstration of the shape of each style, not a reimplementation of Discord’s renderer, and it will differ from the real thing in small details.

That is not a shortcoming so much as the point being made. There is no single correct rendering of a Discord timestamp, because every reader gets a different one. What the generator guarantees is the code, which is a pure function of the instant you picked.

Relative time truncates rather than rounds

The R preview picks the largest unit that fits the gap and then truncates toward zero. Ninety minutes from now therefore reads ā€œin 1 hourā€, not ā€œin 2 hoursā€, and the month and year buckets use the usual thirty and three hundred and sixty five day approximations. Relative labels are inherently fuzzy, and Discord’s own are bucketed the same way.

The preview refreshes about once a second while the page is open so it stays truthful as the gap closes. The copied code never changes on that tick, because it pins one fixed instant and it is Discord that recalculates the wording for each reader, every time they look at the message. Pairing F with R in the same announcement gives readers both the exact date and the countdown, and since both encode the same number they can never disagree.

Where the same number is useful outside Discord

The value inside the brackets is an ordinary Unix timestamp, so it travels. If someone posts a raw number at you and you want to know what it means, the Unix Timestamp Converter reads it back both ways and can tell seconds from milliseconds automatically. For working out what 20:30 in one city is in three others before you commit to a time, the Time Zone Converter and the World Clock are the right stops first.

Discord’s R style already gives a self-updating countdown inside the message, so it usually beats posting a screenshot of a timer. When the countdown needs to live on a page instead, on a stream overlay or a landing page, Countdown to Date does that job, and the other event and scheduling helpers sit in generators.

See it in action

Screenshot of the Discord Timestamp Generator tool with a date and time picker beside a table of Discord timestamp formats, each row pairing the code to paste with a live preview of how it will render
Discord Timestamp Generator mid-process: a date and time picker beside a table of Discord timestamp formats, each row pairing the code to paste with a live preview of how it will render.
Diagram: where the work happens on a SysFenix page that has no file input at all: the tool arrives as ordinary JavaScript inside the page, works the answer out on your own device and renders it in place, so the upload, queue and server-side record a typical online tool needs never happen
Where the work happens on a SysFenix page that has no file input at all: the tool arrives as ordinary JavaScript inside the page, works the answer out on your own device and renders it in place, so the upload, queue and server-side record a typical online tool needs never happen.

Frequently asked questions

Which time zone is the date picker reading?

Your own. The field is a native datetime-local input, so the wall-clock time you type is interpreted in whatever zone your operating system reports, and the label beside the field names that zone so there is no ambiguity. The generated code is the resulting absolute instant, which is why every reader still sees it on their own clock.

Why does the Now button land on a round minute?

Because the value written into the picker carries only a year, month, day, hour and minute, so the seconds field is filled in as zero. All five quick buttons behave the same way, offsetting from the current moment and then dropping to the top of that minute. If you need a specific second, type it into the seconds position of the field yourself and the code will honor it.

Should the number be in seconds or milliseconds?

Seconds, always. Feeding Discord a millisecond value is the classic mistake, and it is not a subtle one, since 1789245000000 read as seconds lands in the year 58668. This tool divides by a thousand and floors the result in exactly one place, so the number it prints is never a millisecond value.

What happens if I pick a clock time that daylight saving skips?

The browser resolves it to a real instant rather than refusing. On a spring-forward night in a European zone, asking for 02:30 when the clocks jump from 02:00 to 03:00 produces a code for 03:30 local time, because that hour does not exist. Check the preview row after picking a date near a clock change and adjust if it moved.

Will my friends see the same wording the preview shows?

Not character for character, and that is expected. The preview is drawn with your browser's own Intl formatters in your language and zone, so it demonstrates the shape of each style rather than reproducing Discord's renderer. Small details such as a two versus four digit year can differ. The code itself is exact, and that is the part you paste.

Does the copy button always work?

It uses the browser's clipboard API, which some contexts block, and the button confirms with a brief Copied label when it succeeds. If the browser refuses, a message appears telling you to select the code text and copy it by hand instead, so a blocked clipboard never leaves you guessing whether the copy went through.

Related tools