I can confirm from my recent experience with elasticsearch and graphite-web that handling timezones and datetime objects ranks among the three hardest problems in computer science: naming things, cache invalidation and off-by-one errors.