Date → Discord code

Generate, convert, or decode a Discord timestamp

Pick a common or full IANA timezone, use a quick future preset, paste an existing <t:…> tag or decimal message ID, or paste up to 500 dates and timestamps in bulk. The generator validates whole Unix seconds and keeps every date and message in this tab.

Loading the Discord timestamp generator…

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

500-line workflow

Bulk Discord timestamps: up to 500 lines

Paste one value per line—Unix seconds, a complete <t:…> tag, 2027-01-15, or 2027-01-15 21:00. Date-only lines use midnight in the selected source timezone, while date-and-time lines honor that timezone and its daylight-saving rules.

The batch view reports the number of valid lines, shows the first errors without hiding the rest of the list, and can copy either the selected style or all nine formats for every valid line. Nothing in the batch is uploaded.

Limit
500 non-empty lines.
Line formats
Unix seconds, Discord tags, dates, and date/time values.
DST safety
Ambiguous local times use the earlier occurrence and warn you.
Output
One selected style or all nine documented styles per line.

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. Use Now to start from the current moment. “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:1800000000: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:1800000000> and <t:1800000000: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.”

Real messages, ready to edit

Discord timestamp examples: copy-ready codes

Every example uses 1800000000—2027-01-15 at 08:00 UTC—so you can see where the tag belongs in a sentence. Discord renders each one in the reader’s timezone and locale.

Use caseMessage to copy and editWhy this pattern works
Event announcementLaunch starts <t:1800000000:F> (<t:1800000000:R>).Gives readers the exact local date and a live countdown.
Deadline noticeApplications close <t:1800000000:D> (<t:1800000000:R>).Separates the calendar deadline from the remaining time.
Compact scheduleRelease window opens <t:1800000000:s>.Uses the compact style without seconds for a dense schedule.
Precise coordinationDeploy at <t:1800000000:T>.Keeps the time-only style with seconds for technical teams.
Default reminderReminder: <t:1800000000>.Uses Discord’s documented default f style.

Replace 1800000000 with the seconds produced by the generator. Keep the angle brackets, colon, and style letter exactly as shown; changing their case or punctuation is the most common reason a Discord timestamp does not render.

Countdown without timezone math

Discord countdown generator: relative timestamps 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:1800000000:F> (<t:1800000000:R>). The first tag anchors the schedule; the second makes remaining time easy to grasp.

This creates a Discord countdown timestamp, not an interactive timer widget or embed. Discord recalculates the relative wording whenever the message is viewed. 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

“2027-01-15 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.

Discord time zone conversion example: New York to Tokyo

For an event on January 15, 2027 at 09:00 in New York, enter 2027-01-15 09:00 and select America/New_York as the source timezone. That instant is 14:00 UTC, or Unix seconds 1800021600. Copy <t:1800021600:F> into your Discord message.

A reader whose Discord timezone is Tokyo sees January 15 at 23:00, while a New York reader sees 09:00. Share the same tag with both readers; Discord handles the local display. Keep the IANA zone selected for other dates so seasonal offset changes are included. See the source and viewer timezone rules for daylight-saving details.

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, 1800000000 is seconds; 1800000000000 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
1800000000 — the documented tag unit.
Milliseconds
1800000000000 — common in JavaScript.
Microseconds
1800000000000000 — common in databases and tracing.
Nanoseconds
1800000000000000000 — 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

Discord timestamp converter: decode an existing tag

Paste a tag such as <t:1800000000:S>. The built-in Discord timestamp converter 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 worker, process, and increment bits; paste a decimal message, channel, or user ID into the snowflake decoder below to convert its creation metadata.

Input
<t:1800000000:S>
Seconds
1800000000
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.

Discord @time command for quick desktop drafting

Discord’s February 4, 2026 patch notes describe a native @time command on Desktop that helps generate a Linux timestamp and clarify the referenced time. It is useful for one-off messages while composing, but it does not replace explicit IANA timezone control, DST diagnostics, bulk output, tag decoding, or all-nine-style comparison. Availability can vary by platform, so test the client where you plan to post.

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.

Message ID → creation time

Discord Snowflake converter: message ID to timestamp

Discord calls its 64-bit message, channel, and user identifiers Snowflake IDs. The first 42 bits encode the creation instant, so a decimal ID can reveal when the object was created without account access.

To get a message ID, enable Developer Mode in Discord’s settings, then use the message context menu’s copy-ID action. If your Discord app instead offers Copy Message Link, the final numeric segment of that message link is the message ID. Paste the decimal ID into the decoder.

Paste a decimal ID such as 1199835124667021433 into the decoder. LiveParse shifts the ID right by 22 bits, adds Discord’s epoch of 1420070400000 milliseconds, and shows 2024-01-24 21:56:25.579 UTC. Use Use creation time to load the equivalent whole second, 1706133385, into the timestamp generator.

The result also separates worker, process, and increment fields. This helps when correlating logs, reviewing bot output, or checking whether a supposedly old ID was really created at the stated time. The decoder runs in your browser and accepts only decimal IDs within Discord’s unsigned 64-bit range. Discord’s Snowflakes reference documents the same 42-bit timestamp and epoch used here.

Input
A decimal Discord message, channel, or user ID.
Creation time
((ID >> 22) + 1420070400000) milliseconds.
Timestamp input
Floor the creation milliseconds to Unix seconds.
Output
All nine Discord timestamp styles and message templates.

Fast diagnosis

Discord timestamp not working: common fixes

When a timestamp remains as text, the cause is almost always its exact structure, unit, style case, or the Discord surface receiving the message.

SymptomLikely causeFix
Raw <t:…> text is displayedA bracket, colon, prefix, or closing symbol is missing.Copy the exact shape <t:1800000000:F>, then test it in an ordinary Discord message.
The date is many years too far awayMillisecond values were pasted where Discord expects seconds.Divide JavaScript/API milliseconds by 1,000 and use the whole-second result.
The style letter is ignoredThe style is undocumented or the wrong case, such as r instead of R.Use one of the nine documented, case-sensitive letters and re-copy the generated tag.
The tag stays literal after pastingThe text was placed in a code block or escaped/quoted field that presents characters literally.Remove surrounding backticks and send the tag as normal message text.
The date changes for another memberDiscord localizes the same instant for each reader’s timezone and locale.Check the source instant and pair F with R when both date and countdown matter.
The result is implausible or rejectedThe value contains fractional seconds, is negative, or falls outside the intended range.Use a whole, non-negative Unix-second value and review the date before publishing.
It works in one surface but not anotherMessage fields, embeds, forms, and client surfaces can have different formatting support.Test in the actual channel, thread, or destination where members will see it.

Questions answered

Discord Timestamp Generator FAQ

Can I use this as a Discord time zone converter?

Yes. Enter the date and time, choose its source IANA timezone, and LiveParse converts that wall clock to Unix seconds for a Discord timestamp. Each reader's Discord app then renders the same instant in their local timezone.

Can I make multiple Discord timestamps at once?

Yes. Paste up to 500 non-empty lines with Unix seconds, existing tags, dates, or dates and times. The bulk generator returns tags for all nine styles and flags invalid lines.

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 Discord countdown?

Use uppercase R—for example, <t:1800000000:R>. It is not an interactive timer; Discord recalculates the wording each time the message is shown. Pair it with F when the exact date also matters.

Do Discord timestamps repeat automatically?

No. Each tag represents one instant. For a weekly event, generate a separate timestamp for each occurrence; a bot can automate that from a schedule.

Can I use a timestamp in a Discord channel name?

No. Discord channel names do not process message-formatting tags. Type the date and time as plain text in the channel-name field.

Can I use a Discord timestamp in my profile bio?

Discord profile bios display plain text and do not render timestamp tags. A pasted <t:…> code appears literally. Use a readable date such as Joined March 2024 instead.

How do I get the current Discord timestamp?

Use the Now button. It loads your browser’s current Unix seconds and creates the selected tag; the Unix now readout updates every second.

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. Use the built-in Discord timestamp converter: paste the complete tag to extract its seconds and style, view the date, and regenerate every format.

How do I convert a Discord message ID to a timestamp?

Paste the decimal Snowflake ID into the decoder. LiveParse shifts it right by 22 bits, adds Discord’s epoch, 1420070400000 ms, shows the UTC creation time, and loads its Unix seconds into the generator.

How do I find a Discord message ID?

Enable Developer Mode in Discord’s settings, use the message context menu’s copy-ID action, or copy the message link and use its final numeric segment. Paste that decimal ID into the Snowflake decoder.

Does Discord have an @time command?

Yes. Discord’s February 4, 2026 patch notes describe an @time command on Desktop that helps generate a Linux timestamp and clarify the referenced time. Availability can vary by platform, so test the client where you plan to post.

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.