Convert Discord Snowflake ID to Date

Enter Discord message, user, or channel ID to extract creation date

Creation Date
Unix Timestamp (milliseconds)
Unix Timestamp (seconds)
ISO 8601 Format

Last updated

Discord Snowflake IDs

Discord uses a Snowflake ID system similar to Twitter's, but with a different epoch. Every Discord entity — users, servers, channels, messages, roles — has a unique Snowflake ID that encodes its creation timestamp. Discord's epoch starts on January 1, 2015 at 00:00:00 UTC.

Discord Snowflake Structure

BitsFieldDescription
63–22 (42 bits)TimestampMilliseconds since Discord epoch (Jan 1, 2015)
21–17 (5 bits)Internal worker ID0–31
16–12 (5 bits)Internal process ID0–31
11–0 (12 bits)Increment0–4095 per millisecond

Decoding Discord IDs

JavaScript
const DISCORD_EPOCH = 1420070400000n; // Jan 1, 2015

function decodeDiscordId(idStr) {
  const id = BigInt(idStr);
  const timestamp = (id >> 22n) + DISCORD_EPOCH;
  const date = new Date(Number(timestamp));

  return {
    id: idStr,
    createdAt: date.toISOString(),
    timestamp: Number(timestamp),
    workerId:  Number((id & 0x3E0000n) >> 17n),
    processId: Number((id & 0x1F000n)  >> 12n),
    increment: Number(id & 0xFFFn)
  };
}

// Example Discord user ID
console.log(decodeDiscordId('175928847299117063'));
// { createdAt: '2016-04-30T11:18:25.796Z', ... }

// Generate a Discord ID for a specific date
function dateToDiscordId(date) {
  const ms = BigInt(date.getTime()) - DISCORD_EPOCH;
  return String(ms << 22n);
}

Frequently Asked Questions

Enter the Discord snowflake ID and click Convert. The tool extracts the embedded timestamp using the formula: (id >> 22) + 1420070400000, returning the creation date.