Sooner or later every developer has to deal with timezones. You've probably heard of GMT, UTC, apparent solar time, leap seconds, the International Meridian Conference, POSIX time. But what are they exactly? What problem did we solve? What problems were introduced by the solution? Why is it harder to subtract two datetimes than subtracting two numbers?