DWEEB
Tool and reference · Dynamic timestamps

Discord Timestamp Generator: Time Codes and Formats

A Discord timestamp token like <t:1767225600:F> renders as a real date in every reader's own timezone and language — no more "8 PM EST / 1 AM UTC" tables in event posts. Pick a moment in the generator below and copy a code; the reference after it explains all nine styles, how to produce the number in code, and the mistakes that break a timestamp.

Discord timestamp generator

Pick a date and time in your own timezone, then copy the code for the style you want. Paste it into any Discord message, embed, webhook or bot reply and every reader sees it converted to their own timezone and language.

Example: 1 January 2026, 00:00 UTC, as an en-US reader sees it. Turn on JavaScript to use your own date.

Discord timestamp codes for the chosen moment
StyleCode to pasteWhat readers seeCopy
Short time t<t:1767225600:t>12:00 AM
Medium time T<t:1767225600:T>12:00:00 AM
Short date d<t:1767225600:d>1/1/2026
Long date D<t:1767225600:D>January 1, 2026
Long date, short time f<t:1767225600:f>January 1, 2026 at 12:00 AM
Full date, short time F<t:1767225600:F>Thursday, January 1, 2026 at 12:00 AM
Short date, short time s<t:1767225600:s>1/1/2026, 12:00 AM
Short date, medium time S<t:1767225600:S>1/1/2026, 12:00:00 AM
Relative R<t:1767225600:R>“in 2 days” / “2 hours ago”

Unix time 1767225600 · shown in UTC

How Discord timestamps work

The token is <t:UNIX> or <t:UNIX:STYLE>, where UNIX is a count of seconds since 1970-01-01 UTC and STYLE is one of nine single-letter codes. Discord replaces the token at render time using the viewer's locale and timezone, so the same message reads correctly in Tokyo and Toronto. When you omit the style, Discord uses f (long date with a short time).

Timestamps work in normal chat, webhook messages, embed descriptions and Components V2 Text Displays. Inside a code block the token is shown literally — that is the standard way to show someone the syntax itself.

All nine timestamp styles

Examples use 1767225600 (2026-01-01 00:00 UTC) as an en-US reader in UTC sees it; every reader gets their own language and timezone. The names are the ones in Discord's formatting reference. The s and S styles were added after the original seven, so older references list only seven.

All nine timestamp styles
CodeDiscord's nameExample outputBest for
<t:1767225600:t>Short time12:00 AMDaily schedules, doors-open times
<t:1767225600:T>Medium time12:00:00 AMLaunches and drops where seconds matter
<t:1767225600:d>Short date1/1/2026Compact dates in lists and tables
<t:1767225600:D>Long dateJanuary 1, 2026Deadlines and due dates
<t:1767225600:f>Long date, short time (default)January 1, 2026 at 12:00 AMEvent announcements
<t:1767225600:F>Full date, short timeThursday, January 1, 2026 at 12:00 AMEvents where the weekday matters
<t:1767225600:s>Short date, short time1/1/2026, 12:00 AMDate and time together in a changelog or log line
<t:1767225600:S>Short date, medium time1/1/2026, 12:00:00 AMIncident timelines that need seconds
<t:1767225600:R>Relative“in 3 days” / “2 hours ago” — updates liveCountdowns and “last updated” notes

Combine an absolute time with a countdown

Two tokens for the same moment read better than one in an announcement: the full date for people planning ahead, the relative one for people checking right before it starts. Discord renders each token independently, so the pair stays correct in every timezone and the countdown ticks over to “ago” once the moment passes.

Keep relative timestamps out of posts that stay pinned for months — “8 months ago” on a rules post reads as neglect. Use an absolute style there, and restore and update the message when the date itself changes; the editing guide walks through that without reposting.

## 🎮 Community game night
Starts <t:1767225600:F> — that's <t:1767225600:R>.
-# Times show in your own timezone.

Get the unix timestamp in code

Every language counts unix time in seconds from 1970-01-01 UTC, but several return milliseconds by default — the source of the year-57,000 bug below. Both bot libraries also ship a formatter that builds the whole token for you.

  • In DWEEB, the clock button in the text toolbar opens the same picker as the generator above and inserts the token where your cursor is.
  • In your own code, build the token as <t:SECONDS:STYLE> with an integer — a decimal such as 1767225600.5 is not a valid timestamp.
// JavaScript (browser, Node.js, Deno, Bun) — seconds, not milliseconds
Math.floor(Date.now() / 1000)
Math.floor(new Date("2026-01-01T00:00:00Z").getTime() / 1000) // 1767225600

// discord.js builds the token itself
import { time, TimestampStyles } from "discord.js";
time(new Date("2026-01-01T00:00:00Z"), TimestampStyles.RelativeTime) // "<t:1767225600:R>"

# Python
import time
from datetime import datetime, timezone
int(time.time())
int(datetime(2026, 1, 1, tzinfo=timezone.utc).timestamp())  # 1767225600

# discord.py builds the token itself
discord.utils.format_dt(datetime(2026, 1, 1, tzinfo=timezone.utc), style="R")  # "<t:1767225600:R>"

# macOS / Linux terminal
date +%s

# PowerShell
[DateTimeOffset]::UtcNow.ToUnixTimeSeconds()

# Excel or Google Sheets, for a UTC date and time in A1
=ROUND((A1 - DATE(1970,1,1)) * 86400, 0)

A timestamp in a real webhook payload

Timestamps are plain text inside a message, so a webhook needs nothing special to send one. This Components V2 payload posts an event notice with both an absolute and a relative time; import it into the Discord message builder to preview it, or send it from a script as shown in the cURL webhook guide.

{
  "flags": 32768,
  "components": [
    {
      "type": 10,
      "content": "## Community game night\nStarts <t:1767225600:F> — that's <t:1767225600:R>."
    }
  ]
}

Common mistakes

Common mistakes
SymptomCauseFix
A date in the year 57,000Milliseconds were pasted instead of secondsDivide by 1000 and round down — a 13-digit number is milliseconds
The literal <t:…> text shows in chatThe token is inside a code block or inline code, or the style letter is wrongMove it out of the code span; use one of t T d D f F s S R — the letter is case-sensitive
The time is off by some hoursA local time was converted as if it were UTCPick the moment in your own timezone in the generator, or convert from UTC explicitly
Time is wrong for some readersA written timezone was added next to the tokenLet the token carry the time; drop the hardcoded zone
"2 years ago" in an evergreen postRelative style ages with the messageUse an absolute style like F for rules and pinned posts

Frequently asked questions

How do I make a timestamp in Discord?

Convert the moment to a unix timestamp in seconds and write it as <t:SECONDS:STYLE>, for example <t:1767225600:F>. The generator at the top of this page does the conversion from your own timezone and gives you a code to copy for every style.

How do I show a time in everyone's time zone on Discord?

Post it as a timestamp code instead of typing the time. Pick the moment in the generator above in your own time zone, copy a code such as <t:1767225600:F>, and paste it into your message: Discord converts it for every reader, so nobody has to work out the difference from UTC, EST or CET.

Is there a time zone converter for Discord?

Discord has no converter built in, but its timestamp codes do the conversion for you: one code shows each reader the time in their own zone and language. Use the generator above to make the code from a date and time in your zone.

What timezone do Discord timestamps use?

The reader's. The number inside the token is a moment in UTC seconds, and Discord shows it in each viewer's own timezone and language, so you never need to write a timezone next to it.

Why does my Discord timestamp show the wrong date or time?

Usually one of three things: a 13-digit millisecond value was pasted instead of seconds, a local time was converted as if it were UTC, or a hardcoded timezone was written next to the token. Paste the number into the generator's decode box to see exactly which moment it points at.

How do I make a countdown in Discord?

Use the relative style, <t:SECONDS:R>. It shows text such as “in 2 hours”, updates while the message is on screen, and switches to “2 hours ago” once the moment has passed. Pair it with an absolute style for readers who plan ahead.

What are the s and S timestamp styles?

They are the two newest styles. s shows a short date with a short time, such as 1/1/2026, 12:00 AM for an en-US reader, and S adds seconds: 1/1/2026, 12:00:00 AM. Current Discord clients render them anywhere the other seven styles work.

Do Discord timestamps work in webhooks, embeds and Components V2?

Yes. A timestamp is plain text, so it renders in webhook message content, embed descriptions and fields, and Components V2 Text Displays. Only a code block or inline code shows it literally.

Put the guide into practice

Open the exact workflow in DWEEB. Nothing posts until you review and confirm it.

Insert a timestamp with the visual picker →

Primary sources

Keep learning