❄️

Snowflake to Date Decoder

Decode Discord snowflake IDs to timestamps and dates. Find when users, messages, guilds, or any Discord object was created.

💡

What are Snowflakes?

Discord uses snowflakes as unique identifiers for most objects (users, messages, guilds, channels, etc.). They're 64-bit integers that encode the creation timestamp, making it easy to determine when any Discord object was created.

What are Discord Snowflakes?

Discord uses snowflakes as unique identifiers for most resources in their API. A snowflake is a 64-bit integer that encodes several pieces of information:

  • Timestamp (42 bits): Milliseconds since Discord Epoch (January 1, 2015)
  • Internal Worker ID (5 bits): Identifies which worker created the ID
  • Internal Process ID (5 bits): Identifies which process created the ID
  • Increment (12 bits): For every ID generated on a process, this is incremented

How to Get Snowflake IDs

1. Enable Developer Mode

Settings → Advanced → Developer Mode (toggle on)

2. Copy IDs

Right-click on any user, message, channel, or server and select "Copy ID"

3. Find in URLs

Discord URLs contain snowflake IDs for guilds, channels, and messages

https://discord.com/channels/GUILD_ID/CHANNEL_ID/MESSAGE_ID

4. From Bot Code

Most Discord objects expose their ID property

user.id, message.id, guild.id, channel.id

Common Use Cases

👤

User Account Age

Find when a Discord user created their account by decoding their user ID.

💬

Message Timestamps

Determine exactly when a message was sent, even if it's been edited.

🏰

Server Creation Date

Find out when a Discord server (guild) was created using its ID.

Debug Bot Issues

Troubleshoot timing issues by verifying when objects were created.

Snowflake Structure

Binary Breakdown

64-bit Snowflake Structure:
[42 bits: Timestamp] [5 bits: Worker] [5 bits: Process] [12 bits: Increment]

Example Breakdown

Snowflake: 175928847299117063
Binary: 0000001001111000011101111011011110000000000000000000000000000111
Timestamp bits: 000000100111100001110111101101111
Created: September 5, 2016

Discord Timestamp Formats

Discord supports special timestamp formatting that displays times in each user's local timezone:

<t:1234567890:t> Short Time (16:20)
<t:1234567890:T> Long Time (16:20:30)
<t:1234567890:d> Short Date (20/04/2021)
<t:1234567890:D> Long Date (20 April 2021)
<t:1234567890:f> Short Date/Time (20 April 2021 16:20)
<t:1234567890:F> Long Date/Time (Tuesday, 20 April 2021 16:20)
<t:1234567890:R> Relative Time (2 months ago)

Best Practices

Use Built-in Methods

Discord libraries provide built-in methods for timestamp extraction. Use user.createdAt or SnowflakeUtil.timestampFrom() instead of manual calculation.

⚠️

Snowflakes are Strings

Always treat snowflakes as strings in JavaScript to avoid precision loss with large integers. Use BigInt for calculations.

🔍

Account Age Verification

Decode user IDs to check account age for server security. New accounts might be alts or spam bots.

Discord Epoch Constant

Discord's epoch is January 1, 2015 (1420070400000ms). All Discord objects were created after this date.

📊

Sorting by Snowflake

Snowflakes are roughly time-sortable. Higher IDs were created more recently (with some caveats for worker/process IDs).

🎯

Use for Audit Logging

Combine snowflake timestamps with audit logs to track when specific actions occurred in your server.