See http://howardhinnant.github.io/date_v2.html and http://howardhinnant.github.io/tz.html