
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.