On Mon, 27 Oct 2003 14:36:57 +0100, Erik Thiele wrote
hi.
i am trying to convert between UTC and CEST/CET (Europe/Berlin)
i don't find documentation or suitable functions in the Wiki, the
examples or the documentation.
Eric -
The local time conversion code is still experimental which is why it is
undocumented.
also i don't understand the sourcecode of the time zone stuff. but i
found that eu_dst_trait exists, but don't know what that is and how
to use it.
any ideas?
You can try something like this:
typedef boost::date_time::eu_dst_trait<date> eu_dst_traits;
typedef boost::date_time::dst_calc_engine eu_dst_calc;
//adjustment from UTC is +2
typedef boost::date_time::local_adjustor
eu_cet_adjustor;
ptime t1(...); //construct a 'local time'
ptime t2 = eu_cet_adjustor::local_to_utc(t1);
ptime t3 = eu_cet_adjustor::utc_to_local(t2);
I believe this code works, but do some tests to make sure. You can find
examples of code like this in libs/date_time/test/testlocal_adjustor.cpp and
testdst_rules.cpp.
As I said, this is experimental code and I think this approach has proven to
be rather cumbersome. I'm working on a 'dynamic timezone' class that will
provide the ability to construct zone and offset data at runtime instead of
using traits for timezone configurations. This won't be in the 1.31 release,
however...
Jeff