On Wed, Oct 28, 2015 at 4:09 PM, Andrew Paprocki <andrew@ishiboo.com> wrote:
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.html

Feedback always welcome :)

As a point of comparison, cctz deals exclusively with absolute time (think time_t), civil time (think YMDhms), and time zone (opaque).  So, there is no distinction between TimeZoneUtil's example 1, "Converting a UTC time to a Local Time", and example 2, "Converting a Local Time in One Time Zone to Another Time Zone."  They are both instances of:

at = MakeTime(ct1, tz1)
ct2 = BreakTime(at, tz2)

Notice also that "offset" does not appear anywhere in those concepts.