If you're interested in keeping up with C++ APIs, check out ours as well:
https://bloomberg.github.io/bde/group__baltzo.html
It is built atop date/time types (John Lakos designed) in a lower package. bdlt::Datetime (no offset/tz), bdlt::DatetimeTz (datetime + offset), and baltzo::LocalDatetime (datetime + iana tz string) to cover all the use cases. The baltzo package allows efficient conversion from one timezone to another using these types. Included in the package is a default process-wide cache to help speed everything up.baltzo::TimeZoneUtil contains the high level conversion routines:
https://bloomberg.github.io/bde/group__baltzo__timezoneutil.htmlFeedback always welcome :)
at = MakeTime(ct1, tz1)ct2 = BreakTime(at, tz2)