Timestamps and Timezones: The Complete Developer Guide
Master timestamps, timezone conversions, and date handling to avoid the most common time-related bugs in software.
Time is one of the hardest problems in software engineering. Timezone bugs have caused flight cancellations, financial losses, and security vulnerabilities.
Unix Timestamps
A Unix timestamp is the number of seconds since January 1, 1970 00:00:00 UTC. It is timezone-independent, making it ideal for storage and computation.
const secondsTimestamp = Math.floor(Date.now() / 1000);
new Date(1775000000 * 1000).toISOString();
// "2026-04-28T00:53:20.000Z"
ISO 8601: The One Format to Rule Them All
Always use ISO 8601 format for exchanging dates between systems:
"2026-04-05T14:30:00+09:00" // KST (Korea Standard Time)
"2026-04-05T05:30:00Z" // UTC (same moment)
"2026-04-05T01:30:00-04:00" // EDT (same moment)
The Timezone Conversion Trap
Never store local times without timezone information:
// BAD: ambiguous
const meetingTime = "2026-04-05 14:30:00";
// GOOD: explicit timezone
const meetingTimeKST = "2026-04-05T14:30:00+09:00";
Daylight Saving Time Gotchas
DST transitions create non-existent and ambiguous times. Always use timezone-aware libraries to handle these cases.
Best Practices
1. Store in UTC: Always store timestamps in UTC in your database
2. Display in local time: Convert to user's timezone only at display time
3. Use ISO 8601: For all API communication
4. Use IANA timezone names: 'Asia/Seoul' not 'KST' (abbreviations are ambiguous)
5. Test edge cases: DST transitions, leap years, year boundaries
Use our Timestamp Converter tool to convert between Unix timestamps, ISO 8601, and human-readable formats.