...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::date_time::time_zone_base — Interface class for dynamic time zones.
// In header: <boost/date_time/time_zone_base.hpp> template<typename time_type, typename CharT> class time_zone_base { public: // types typedef CharT char_type; typedef std::basic_string< CharT > string_type; typedef std::basic_ostringstream< CharT > stringstream_type; typedef time_type::date_type::year_type year_type; typedef time_type::time_duration_type time_duration_type; // construct/copy/destruct time_zone_base(); ~time_zone_base(); // public member functions string_type dst_zone_abbrev() const; string_type std_zone_abbrev() const; string_type dst_zone_name() const; string_type std_zone_name() const; bool has_dst() const; time_type dst_local_start_time(year_type) const; time_type dst_local_end_time(year_type) const; time_duration_type base_utc_offset() const; time_duration_type dst_offset() const; string_type to_posix_string() const; };
This class represents the base interface for all timezone representations. Subclasses may provide different systems for identifying a particular zone. For example some may provide a geographical based zone construction while others may specify the offset from GMT. Another possible implementation would be to convert from POSIX timezone strings. Regardless of the construction technique, this is the interface that these time zone types must provide.
Note that this class is intended to be used as a shared resource (hence the derivation from boost::counted_base.
time_zone_base
public member functionsstring_type dst_zone_abbrev() const;
string_type std_zone_abbrev() const;
string_type dst_zone_name() const;
string_type std_zone_name() const;
bool has_dst() const;
time_type dst_local_start_time(year_type y) const;
time_type dst_local_end_time(year_type y) const;
time_duration_type base_utc_offset() const;
time_duration_type dst_offset() const;
string_type to_posix_string() const;