Quick answer: the full syntax is <t:UNIX_SECONDS:STYLE>. Discord currently documents nine case-sensitive style letters: t, T, d, D, f, F, s, S, and R. The lowercase f style is the default when the style is omitted. Use whole Unix seconds—not JavaScript milliseconds—and remember that the visible result depends on the reader’s locale and timezone.
How Discord timestamp syntax works
Discord describes timestamps as a custom part of its message formatting. A basic tag contains t, a colon, and a Unix timestamp wrapped in angle brackets. Add another colon and a style letter to choose the presentation:
<t:1754208000>
<t:1754208000:F>
The number 1754208000 identifies one instant. It does not carry a country, language, or timezone name. According to the current Discord API message-formatting reference, timestamps are expressed in seconds and displayed in the user’s timezone and locale. One reader may therefore see a 12-hour clock and month-first date while another sees a 24-hour clock and day-first date. Both renderings can identify the same instant.
Style letters are case-sensitive. t and T are different, as are d and D, f and F, and s and S. A generator should preserve the selected case exactly. If you want a ready-to-paste tag without doing the epoch calculation, use the LiveParse Discord Timestamp Generator.
All nine Discord timestamp formats
The table uses the names in Discord’s current developer documentation. Output descriptions are structural rather than fixed English examples because punctuation, date order, month names, and 12- or 24-hour clocks can vary by viewer.
| Style | Example syntax | Documented description | Useful when |
|---|---|---|---|
t | <t:1754208000:t> | Short Time | The date is already clear and seconds are unnecessary. |
T | <t:1754208000:T> | Medium Time | A clock time needs seconds. |
d | <t:1754208000:d> | Short Date | A compact numeric date is enough. |
D | <t:1754208000:D> | Long Date | A readable date is needed without a time. |
f | <t:1754208000:f> | Long Date, Short Time | A compact general-purpose date and time is wanted. This is the default. |
F | <t:1754208000:F> | Full Date, Short Time | The weekday helps make an event announcement clear. |
s | <t:1754208000:s> | Short Date, Short Time | Both date and time must fit in a compact layout. |
S | <t:1754208000:S> | Short Date, Medium Time | A compact date and a time with seconds are needed. |
R | <t:1754208000:R> | Relative Time | The message should describe the instant relative to when it is viewed. |
Why do some references say seven formats? Many older or incomplete lists stop after F and R. Discord’s current reference also lists s and S, making nine documented style letters. “Currently documented” is the useful claim; the reference does not provide a release date for the two compact styles.
Choose between time-only, date-only, and combined styles
Use t or T only when the surrounding sentence establishes the day. “Today at <t:…:t>” can be concise in a short-lived conversation, but it becomes unclear when someone finds the message later. The uppercase T adds seconds; that precision is useful for coordinated launches or incident timelines but usually adds noise to a casual event.
Use d or D when the clock time does not matter. The numeric d form is compact, yet its order follows locale, so one viewer’s month/day arrangement can differ from another’s. The written D form can be easier to scan when the exact date deserves more space.
The combined formats serve most scheduling messages. Lowercase f includes a long date and short time and is the documented default. Uppercase F adds the weekday, which is helpful for a raid, class, release, or community meeting. The compact s and S forms retain both date and time in less space; uppercase S includes seconds. These forms are especially useful in dense status lists or generated tables where a written month would dominate the row.
Use the R style for relative time
The R style asks the client to present the instant relative to the time of viewing. Depending on the instant and viewer, that can appear as wording equivalent to “in 2 hours” or “3 days ago.” It is useful for a countdown, submission window, maintenance start, or incident age. Avoid promising an exact refresh interval: Discord documents the style as Relative Time but does not specify a second-by-second update contract in the message-formatting table.
Relative text supplies urgency but can hide the calendar date. Pair it with an absolute style when people may revisit the message, cross a midnight boundary, or need to add the event to another system.
Event starts <t:1754208000:F> (<t:1754208000:R>).
Both tags must use the same Unix value. If one number is regenerated later, the displayed date and relative description can disagree. A one-click combined template in the Discord timestamp generator avoids that copy error.
Copy-ready announcement patterns
Replace the sample number by generating the intended date and source timezone. The surrounding wording remains static while Discord formats each tag for the reader.
Community event: <t:1754208000:F> — <t:1754208000:R>.
Submissions close <t:1754208000:F> (<t:1754208000:R>).
Release window opens <t:1754208000:f>.
Maintenance begins <t:1754208000:F> and is expected to last 30 minutes.
Incident began <t:1754208000:R> at <t:1754208000:T>.
Keep durations separate from instants. The timestamp identifies when maintenance begins; “30 minutes” describes an interval. Do not convert a duration such as 1,800 seconds into a date relative to 1970. For accessibility and resilience, give the timestamp a plain-language label such as “starts,” “closes,” or “began” instead of posting an unexplained tag by itself.
Understand source time, viewer timezone, and locale
Creating the Unix value and displaying it are two separate operations. First, the generator interprets the date and time in a source timezone and resolves it to one instant. Then Discord displays that instant using each viewer’s timezone and locale. The tag itself contains only Unix seconds and the style letter; it does not preserve the source timezone name.
This distinction matters for daylight saving time. A regional zone such as America/New_York has historical and seasonal rules, while a fixed offset such as UTC-05:00 does not adjust itself. During a spring transition, some local clock times do not occur. During a fall transition, one local time can occur twice. When scheduling near either boundary, use an IANA regional timezone, review the resolved UTC instant, and make an explicit choice if the local input is ambiguous.
A browser preview is only an approximation of what one reader may see. Discord’s documentation explicitly makes locale and timezone viewer-dependent, so a generator should not claim that punctuation or English wording will match every client. Validate the instant and style, then expect presentation differences that preserve the same moment.
Discord timestamps use seconds, not milliseconds
Discord’s reference says timestamp values are expressed in seconds. This differs from JavaScript’s Date.now(), which returns milliseconds. Around the present, Unix seconds are usually 10 digits while milliseconds are usually 13. Pasting a millisecond value directly into a Discord timestamp can produce an invalid or wildly distant date instead of the intended event.
Unix seconds: 1754208000 ← use inside <t:...:F>
Unix milliseconds: 1754208000000 ← divide by 1,000 first
Correct: <t:1754208000:F>
Wrong unit: <t:1754208000000:F>
If the millisecond value is divisible by 1,000, exact conversion is simple integer division. If it contains a sub-second remainder, choose and document whether to floor, round, or reject it; the inline tag cannot communicate that extra precision. Do not rely only on digit count for historical or far-future values. The seconds vs milliseconds guide explains reliable unit detection, and the Unix Timestamp Converter can inspect seconds, milliseconds, microseconds, and nanoseconds directly.
How to decode an existing timestamp tag
To decode <t:1754208000:F>, remove the angle brackets and split on colons. The first field, t, identifies timestamp markup. The second field, 1754208000, is the Unix-seconds value. The optional third field, F, selects the style. If no third field exists, use the default f interpretation described in Discord’s table.
- Preserve the original tag. Do not edit the number while trying to read it.
- Validate the shell. It should have angle brackets, a lowercase leading
t, and colon-separated fields. - Validate seconds. Treat the middle field as Unix seconds and check that it resolves to a plausible date.
- Validate the style. Accept only
t,T,d,D,f,F,s,S, orR. - Convert or restyle. Decode the number with the generator, then change only the final style letter to preserve the instant.
Developers parsing user input can start from a strict shape such as ^<t:(\d+)(?::([tTdDfFsSR]))?>$, then separately enforce the application’s allowed date range. A matching shape does not prove that a client will accept an extreme timestamp.
Inline timestamp or Discord Scheduled Event?
An inline timestamp is useful inside an announcement, checklist, incident update, or generated message. It is lightweight and keeps the time beside the surrounding explanation. A Discord Scheduled Event is a separate server feature with event details and an Interested workflow that can notify participating members when the event goes live. Discord documents the setup and permission model in its Scheduled Events support guide.
Use the feature that matches the job. A short deadline may need only F plus R. A community session that benefits from discovery and participation tracking may warrant a Scheduled Event, with inline timestamps repeated in channel announcements. The two approaches can complement each other.
Troubleshooting a tag that stays as raw text
- Check angle brackets and colons. The complete shape is
<t:UNIX_SECONDS:STYLE>, not parentheses, braces, or an ISO date. - Use whole Unix seconds. Convert a millisecond API value before placing it in the tag.
- Check letter case. Only the nine documented, case-sensitive styles belong in the style position.
- Remove code formatting. Backticks are useful for showing raw syntax in a tutorial but intentionally present text as code rather than normal message formatting.
- Test the intended context. Discord documents inline timestamp message formatting, but distinct fields and surfaces can have different formatting behavior.
- Check range and plausibility. A syntactically valid integer can still represent an unsupported or unintended date.
Ready to create a tag? Select the source date and timezone, compare all nine formats, or paste an existing tag to inspect its Unix seconds and style.
Open the Discord Timestamp GeneratorFrequently asked questions
What are the nine Discord timestamp style letters?
Discord currently documents t, T, d, D, f, F, s, S, and R. They select time-only, date-only, combined, compact combined, or relative presentations.
What happens if I omit the style?
The current Discord reference marks lowercase f as the default. Therefore <t:1754208000> uses the Long Date, Short Time presentation.
What is the difference between f and F?
Both show a date and short time. Uppercase F adds the weekday and uses the Full Date, Short Time style, while lowercase f is the more compact default.
What is the difference between s and S?
Both are compact short-date combinations. Lowercase s uses Short Time, while uppercase S uses Medium Time and therefore includes seconds in the documented example structure.
Which format creates a countdown?
Use R for Relative Time. Pair it with F when readers also need an absolute weekday, date, and time.
Why does the timestamp look different to another person?
Discord says timestamps display in the user’s timezone and locale. Date order, clock style, language, and wall-clock time can differ while the Unix value still identifies the same instant.
Can I put milliseconds inside the tag?
No—convert them first. Discord documents the value as seconds. Divide known epoch milliseconds by 1,000 using an explicit policy for any sub-second remainder.
Do I need a bot to use a generated timestamp?
The generator produces text in Discord’s documented inline timestamp syntax. Paste it into a normal supported message context and test the result; no bot calculation is required merely to create the text.
Is this the same as a message’s creation timestamp?
No. An inline tag is content chosen by the message author and can represent a past or future instant. The message creation time is metadata assigned when the message is sent.
Primary references
- Discord API Reference: Message Formatting — syntax, seconds, viewer locale/timezone behavior, and the current nine-style table.
- Discord Support: Scheduled Events — event creation, permissions, participation, and notification behavior.
- POSIX.1-2024: Seconds Since the Epoch — the underlying Unix-seconds definition.
LiveParse is not affiliated with or endorsed by Discord.