--- layout: post title: The Trouble with Time date: 2022-03-01 --- We are all bound by an oppressive force. One which declares what we must say and when we must say it. I am, of course, referring to tzdata. The Time Zone Database, or tzdata, is a list of time zones. Each entry includes information about UTC offsets, when daylight savings time begins and ends, and historical information about time changes. For example, if you ask tzdata about the zone `America/New_York`, referring to New York City, NY, USA, it will tell you that NYC was 4 hours, 56 minutes, and 2 seconds behind Greenwich until 18 November 1883, when it switched to 5 hours behind. It can also tell you when DST started and ended every year from 1920, when NYC introduced it, until now (and can predict when it may happen again in future years. If you're scheduling an event or even just showing a clock this information is essential. tzdata gives you this information for the entire world, with frequent updates when countries change their time zones and DST rules. That's why tzdata is used by billions of computers worldwide. Unfortunately, dealing with time is quite complicated. tzdata asserts that a time zone is an area where the time rules have been uniform since 1970. That zone will then be named by the largest city within the area. Continuing our NYC example, Washington DC's time has never differed from NYC since 1970 and it is smaller than NYC, so there's no `America/Washington_DC` and residents of DC will just use `America/New_York`