Change the future

Friday 3:15 p.m.–4 p.m.

Blame it on Caesar: What you need to know about dates, times and time zones

Lennart Regebro

Audience level:
Best Practices/Patterns


Time measurement is a complex area full of tricky problems and unexpected edge-cases. This fast-paced talk tells you how to avoid the pitfalls, and warn about the compromises.


  • Why calendaring is so hard: Explaining calendars by showing the history of the Gregorian calendar. (8 minutes)
  • Showing some code to show the complexity (2 minutes)
  • The libraries you need: datetime (Python), moment.js (Javascript), Date4J (Java) (1min)
  • The evil of Zero-indexed months (1min)
  • The profusion and confusion of week days (3min)
  • Time zones doesn't exist. but they are still a mess (2min)
  • Daylight saving is even worse (1min)
  • How the tz/zoneinfo/olsen database makes it less messy (3min)
  • How daylight saving can makes your birthday disappear (2min)
  • Daylight saving and Python: pytz vs dateutil (3min)
  • pytz vs datetime (2min)
  • Parsing datetimes with time zones: RF2822 vs POSIX (1min)
  • iCalendar: importing/exporting events (1min)
  • Recurring events and iCalendars RRULE (3min)
  • Calendaring compromises (1min)
  • User interface problems (6min)
    • Date pickers
    • Time pickers
    • Timezone se1ectors
    • Showing calendars
    • Recurrence rule widget
    • Non-javascript solutions for web