Date → Discord code

Generate, convert, or decode a Discord timestamp

Pick a common or full IANA timezone, use a quick future preset, or paste an existing <t:…> tag. Touch-sized controls keep copying comfortable on phones, and the generator validates whole Unix seconds while keeping every date and message in this tab.

Loading the Discord timestamp generator…

Enable JavaScript to select a timezone, preview formats, and copy timestamp codes.

Ready in three steps

How to generate a Discord timestamp

A Discord time code represents one instant. The generator first converts the wall-clock time you enter into Unix seconds; Discord then localizes that instant for whoever reads the message.

  1. 1

    Choose the source time

    Enter the date and clock time, then choose the timezone in which that wall clock should be understood. “9:00” in Seoul and “9:00” in New York are different instants, so the source zone is part of the input.

  2. 2

    Pick a display style

    Select one of the nine current style letters. Use F for a complete event date, R for relative wording, or pair both when readers need a calendar anchor and countdown context.

  3. 3

    Copy and paste the tag

    Copy the generated code, such as <t:1785758400:F>, into the message you are composing. Test it in the intended Discord context before publishing an important announcement.

The exact structure

Discord timestamp syntax: <t:UNIX_SECONDS:STYLE>

The documented timestamp structure is <t:TIMESTAMP>, with the styled form <t:TIMESTAMP:STYLE>. The first t identifies the timestamp construct. TIMESTAMP is a whole Unix timestamp in seconds. The optional final letter asks Discord to render a particular date, time, or relative form.

If the style is omitted, Discord documents f as the default. Therefore <t:1785758400> and <t:1785758400:f> request the same style. Keeping :f visible can make a template easier to review; omitting it makes the tag slightly shorter.

Style letters are case-sensitive. Lowercase t and uppercase T are different styles, as are d/D, f/F, and s/S. Relative time uses uppercase R.

<t:
Opens the timestamp tag and distinguishes it from ordinary text.
Unix seconds
A whole-second offset from 1970-01-01 00:00:00 UTC. This generator targets non-negative event times.
:STYLE
An optional, case-sensitive display choice such as :F or :R.
>
Closes the tag so the client can recognize the complete construct.

Complete current reference

All 9 Discord timestamp formats

Many older references list seven styles. The current Discord API reference also documents compact date-and-time styles s and S, bringing the table to nine. Examples are locale-dependent.

Style and official descriptionCode shapeUseful for
t · Short Time<t:…:t>A time-only mention when the surrounding message already makes the date clear.
T · Medium Time<t:…:T>A time including seconds for precise launches or coordinated actions.
d · Short Date<t:…:d>Compact date references in lists, tables, and brief status messages.
D · Long Date<t:…:D>A written date for deadlines and notices that do not need a time.
f · Long Date, Short Time<t:…:f>The documented default: a readable date plus time without the weekday.
F · Full Date, Short Time<t:…:F>Event announcements where weekday, full date, and time add context.
s · Short Date, Short Time<t:…:s>Compact schedules that need both date and time but not seconds.
S · Short Date, Medium Time<t:…:S>Compact schedules that also need seconds.
R · Relative Time<t:…:R>Countdown and elapsed-time context such as “in 2 hours.”

Countdown without timezone math

Create a relative Discord timestamp with R

The R style expresses an instant relative to the viewer’s current time. A future value might appear as “in 2 hours,” while a past value might appear as “3 days ago.” Discord owns the final wording, so do not assume every locale chooses the same unit or phrase.

Relative output is excellent for urgency but weak as the only permanent record. After enough time passes, “months ago” no longer identifies the exact calendar date. Pair R with F: Event starts <t:1785758400:F> (<t:1785758400:R>). The first tag anchors the schedule; the second makes remaining time easy to grasp.

The generator includes event, deadline, release, and maintenance templates using this pair. They are plain message text, so you can edit the surrounding words after copying.

Event
Event starts <t:…:F> (<t:…:R>).
Deadline
Deadline: <t:…:F> — <t:…:R>.
Release
Going live <t:…:R> at <t:…:F>.
Maintenance
Maintenance begins <t:…:F> (<t:…:R>).

Source zone in, viewer zone out

How Discord timestamps handle timezones and locales

The source timezone defines the instant

“2026-08-03 09:00” needs a location. Select an IANA zone such as Asia/Seoul or America/New_York; the name carries regional offset and daylight-saving rules.

Unix seconds are zone-independent

After conversion, the number represents one instant. The source zone is not embedded in the tag. A different preview zone changes calendar fields, not the moment.

Each reader gets a localized view

Discord states that timestamps display using the user’s timezone and locale. Tokyo and Los Angeles readers can see different dates or clock times for the same code.

Preview text is illustrative

LiveParse uses browser internationalization data. Discord controls final wording, punctuation, field order, and 12/24-hour preference. Test critical notices at their destination.

The most common mistake

Discord timestamps use seconds, not milliseconds

Discord’s reference specifies seconds. JavaScript’s Date.now() returns milliseconds. A current Unix seconds value is commonly about ten digits, while the same instant in milliseconds is commonly about thirteen. Pasting the larger value as seconds can produce an implausibly distant date.

For example, 1785758400 is seconds; 1785758400000 is milliseconds for the same instant. Convert deliberately by dividing whole milliseconds by 1,000 and deciding how to handle a remainder. In JavaScript, Math.floor(milliseconds / 1000) selects the containing Unix second, including the correct direction before the epoch.

The decoder detects values that resemble modern milliseconds, microseconds, or nanoseconds and offers a seconds conversion rather than silently accepting the wrong scale. For broader work, use the Unix Timestamp Converter and timestamp unit guide.

Seconds
1785758400 — the documented tag unit.
Milliseconds
1785758400000 — common in JavaScript.
Microseconds
1785758400000000 — common in databases and tracing.
Nanoseconds
1785758400000000000 — high-resolution time that must be rescaled.

Regional clock rules

Daylight-saving gaps and overlaps

A timezone can skip a wall-clock interval when clocks move forward. If a region changes directly from 01:59 to 03:00, then 02:30 does not exist on that date. LiveParse reports the gap rather than silently normalizing it to another time.

When clocks move backward, one wall-clock time can occur twice with different offsets. The generator detects both matching instants and lets you choose the earlier or later occurrence. The typed date looks identical, but the resulting Unix seconds differ.

Use IANA names for regional schedules instead of ambiguous abbreviations or a fixed offset that ignores future rule changes. For an event already defined globally, choose UTC. A timestamp stores one instant, not a recurring local-time rule.

Gap
A local time does not exist because the clock jumps forward.
Overlap
A local time occurs twice because the clock moves backward.
IANA zone
A rule-bearing name such as Europe/Berlin.
UTC
A stable choice when the source instant is already global.

Work in both directions

Decode an existing Discord timestamp

Paste a tag such as <t:1785758400:S>. LiveParse extracts the seconds, keeps the case-sensitive style, converts the instant to the selected source-zone clock, and makes all nine alternatives available. A tag without a style is decoded as default f.

Decoding helps when updating an old event message, reviewing a bot template, or checking a unit mistake. The parser accepts the timestamp structure rather than arbitrary message text. It rejects decimal seconds and undocumented style letters instead of guessing.

This is different from a Discord snowflake ID. Snowflakes encode creation time plus other bits and use a separate calculation. Inline timestamp tags take ordinary Unix seconds directly.

Input
<t:1785758400:S>
Seconds
1785758400
Style
S — Short Date, Medium Time
Alternatives
Regenerate the same instant in any documented style.

Choose the fitting workflow

Web generator, @time, Scheduled Event, or bot?

Generator for explicit control

Use this page for IANA timezone input, DST diagnostics, all nine codes, existing-tag decoding, unit warnings, and ready-made F + R messages.

@time for an in-app desktop flow

Discord’s February 4, 2026 patch notes describe a native @time command on Desktop. It can be faster while composing there; check current client availability rather than assuming every platform behaves identically.

Scheduled Event for event features

An inline tag places localized time in ordinary text. A Discord Scheduled Event is a separate event object with event-specific discovery and notification behavior. A community can use one or both.

Bot for repeated automation

A bot or webhook can generate tags from a trusted schedule. It must still interpret the source timezone correctly and emit whole Unix seconds. Test automated templates around DST transitions.

Questions answered

Discord Timestamp Generator FAQ

What is the Discord timestamp syntax?

Use <t:UNIX_SECONDS> for default display or <t:UNIX_SECONDS:STYLE> for an explicit, case-sensitive style.

Does Discord use Unix seconds or milliseconds?

The current reference says timestamps are expressed in seconds. JavaScript Date.now() returns milliseconds and must be deliberately converted.

Are there seven or nine timestamp formats?

The current official table lists nine: t, T, d, D, f, F, s, S, and R. Older guides often omit s and S.

Which style is the default?

Discord marks f—Long Date, Short Time—as default. Omitting the final style requests that form.

How do I make a relative countdown?

Use uppercase R. Pair it with F when the message should also retain an exact full date and time.

Why does another person see a different clock time?

The instant is identical, but Discord displays it using each reader’s timezone and locale. Timezones can cross a date boundary, and locales format dates differently.

Why did my timestamp show an implausible date?

Check seconds versus milliseconds first. Also confirm the source timezone, whole-number input, and exact case of the style letter.

Can I convert an existing tag back to a date?

Yes. Paste the complete tag into the decoder to extract its seconds and style, view the date, and regenerate every format.

Do I need a bot?

Generating the documented message-formatting text does not require this site to connect to a bot or account. Support can vary by message surface, so test the destination.

Why is raw <t:…> text not rendering?

Check the angle brackets, t: prefix, whole seconds, exact style letter, and whether a code block or escaping forces literal text. Test in the intended Discord context.

Is LiveParse affiliated with Discord?

No. LiveParse is an independent developer tool and is not affiliated with or endorsed by Discord.