Convert Discord ID to Time

📌 Try these examples:
DISCORD ID
⏰ RELATIVE TIME
🌍 UTC TIME
📍 LOCAL TIME
📅 DATE
⏱️ TIME
🔢 UNIX TIMESTAMP

Last updated

Discord Snowflake Time Converter

Convert Discord Snowflake IDs to exact creation times. Every Discord ID (user, message, server, channel, role) contains a timestamp showing when it was created. This tool extracts and displays that time in multiple formats.

Discord Time Formats

What Can You Convert?

👤

Common Use Cases

  • API pagination — convert a target date to a Snowflake cursor for efficient message history queries
  • Account age checks — convert user IDs to creation dates for moderation
  • Incident investigation — convert message IDs to precise send times
  • Server history — convert server/channel IDs to founding dates
  • Data analysis — convert bulk IDs to timestamps for temporal analysis

Use TechConverter's Discord Snowflake Time Converter for instant bidirectional conversion between any Discord Snowflake ID and its corresponding timestamp.

User IDs

Find when Discord accounts were created

💬

Message IDs

See exact message send times

🏰

Server IDs

Discover server creation dates

📢

Channel IDs

Check when channels were made

Code Examples

JavaScript
// JavaScript - Discord ID to Time
function discordIdToTime(id) {
  const DISCORD_EPOCH = 1420070400000n;
  const snowflake = BigInt(id);
  const timestamp = Number((snowflake >> 22n) + DISCORD_EPOCH);
  return new Date(timestamp);
}

// Example usage
const time = discordIdToTime('175928847299117063');
console.log(time.toUTCString());     // UTC format
console.log(time.toLocaleString());  // Local format
console.log(time.toISOString());     // ISO format

// Get relative time
function getRelativeTime(date) {
  const seconds = Math.floor((new Date() - date) / 1000);
  const intervals = {
    year: 31536000, month: 2592000, week: 604800,
    day: 86400, hour: 3600, minute: 60
  };
  
  for (const [unit, secondsInUnit] of Object.entries(intervals)) {
    const interval = Math.floor(seconds / secondsInUnit);
    if (interval >= 1) {
      return `${interval} ${unit}${interval > 1 ? 's' : ''} ago`;
    }
  }
  return 'Just now';
}
Python
# Python - Discord ID to Time
from datetime import datetime, timezone

def discord_id_to_time(snowflake_id):
    DISCORD_EPOCH = 1420070400000
    timestamp = ((int(snowflake_id) >> 22) + DISCORD_EPOCH) / 1000
    return datetime.fromtimestamp(timestamp, tz=timezone.utc)

# Example usage
time = discord_id_to_time('175928847299117063')
print(time.strftime('%Y-%m-%d %H:%M:%S UTC'))  # UTC format
print(time.astimezone().strftime('%Y-%m-%d %H:%M:%S'))  # Local

# Get relative time
from datetime import datetime
def get_relative_time(dt):
    now = datetime.now(timezone.utc)
    diff = (now - dt).total_seconds()
    
    intervals = [
        ('year', 31536000), ('month', 2592000), ('week', 604800),
        ('day', 86400), ('hour', 3600), ('minute', 60)
    ]
    
    for name, seconds in intervals:
        interval = int(diff / seconds)
        if interval >= 1:
            return f"{interval} {name}{'s' if interval > 1 else ''} ago"
    return "Just now"

Use Cases

  • Account Age Verification: Check how old Discord accounts are
  • Message Forensics: Find exact times messages were sent
  • Server History: Track when servers and channels were created
  • Bot Development: Debug timing issues in Discord bots
  • Moderation: Investigate user activity timelines
  • Analytics: Analyze Discord community growth over time

Frequently Asked Questions

Q: How accurate is the time?

A: Discord Snowflake IDs are accurate to the millisecond. The timestamp represents the exact moment the ID was generated.

Q: Can I convert deleted message IDs?

A: Yes! Even if a message is deleted, you can still extract the creation time from its ID.

Q: What timezone is used?

A: Discord uses UTC internally. This tool shows both UTC and your local timezone for convenience.

Examples

Example 1: Snowflake to Time

Input: 817263991139819520

Output:
  ISO 8601:     2021-02-12T08:15:44.123Z
  UTC:          February 12, 2021 at 08:15:44 UTC
  Unix (ms):    1613117744123
  Unix (s):     1613117744
  Relative:     5 years ago

Example 2: Time to Snowflake

Input: 2024-01-01T00:00:00Z

Output:
  Minimum Snowflake: 1191100416000000000
  Maximum Snowflake: 1191100416004194303

Use the minimum as an 'after' cursor in Discord API requests
to fetch messages sent after January 1, 2024.

Example 3: JavaScript Bidirectional Converter

const DISCORD_EPOCH = 1420070400000n;

// Snowflake → Time
function snowflakeToTime(id) {
  const ms = Number((BigInt(id) >> 22n) + DISCORD_EPOCH);
  return {
    date:    new Date(ms),
    iso:     new Date(ms).toISOString(),
    unixMs:  ms,
    unixSec: Math.floor(ms / 1000)
  };
}

// Time → Snowflake range
function timeToSnowflake(date) {
  const ms = BigInt(date.getTime());
  const base = (ms - DISCORD_EPOCH) << 22n;
  return {
    min: base.toString(),
    max: (base | 0x3FFFFFn).toString()
  };
}

// Examples
console.log(snowflakeToTime("817263991139819520").iso);
// 2021-02-12T08:15:44.123Z

const range = timeToSnowflake(new Date('2024-06-15T12:00:00Z'));
console.log(range.min); // Use as API cursor

Frequently Asked Questions

Paste the Discord Snowflake ID into the converter and click 'Convert to Time'. You'll get the exact date and time when the Discord entity (message, user, server) was created, displayed in multiple formats including UTC, local time, and relative time.

Discord Snowflake IDs encode timestamps in milliseconds since January 1, 2015, 00:00:00 UTC. This custom epoch allows Discord to generate unique IDs with embedded creation times.