How Programmers Should Think About Time
2025-06-25

This article delves into the complexities of handling time in programming. It explains the concepts of absolute time (based on epochs and durations) and civil time (Gregorian calendar and time zones), clarifying the mechanics of leap seconds and timezone transitions and their inherent challenges. The importance of the IANA time zone database, which provides historical and future time zone rules for accurate time handling, is highlighted. Three case studies—a chat forum, an event planning website, and a personal project—illustrate different time-handling strategies, emphasizing that 'just use UTC' is not a universal solution.