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
- Relative Time: Human-readable format (e.g., "2 hours ago", "3 days ago")
- UTC Time: Coordinated Universal Time (standard reference)
- Local Time: Converted to your browser's timezone
- Unix Timestamp: Milliseconds since January 1, 1970
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 - 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 - 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.