#include <x/tzfile.H> #include <x/ymdhms.H> time_t t=time(NULL); x::ymdhms now(t, x::tzfile::base::local()); x::ymd now_date(now); x::hms now_time(now);
A
x::ymdhms
combines
x::ymd,
x::hms, and a
x::tzfile to specify a date and time expressed
in a timezone.
A number of constructors are available for creating
x::ymdhms from alternate sources; such as
a time_t calendar time value and a timezone; or
an explicit
x::ymd and
x::hms objects, together with a timezone; or
a C library tm structure.
std::string now_s=x::to_string(now.short_format()); std::string now_s=x::to_string(now.format("%d-%b-%Y %H:%M:%S %z"));
format() and
short_format() methods return an intermediate
object that can be converted by
x::to_string()
into a text string. This is done by
instantiating a
x::strftime
object, and using it to format the x::ymdhms,
accordingly.
format() takes an optional date/time format
string, which defaults to
“%a, %d %b %Y %H:%M:%S %z”.
See the
reference documentation for a
more complete description of x::ymdhms.
Note that this class incurs more overhead than the
tm-related functions in the C library.
Basic needs that can be satisfied by C library functions should use them.
Use this class for complicated requirements that cannot be easily
satisfied by the C library, such as pulling apart the date and time
components, and/or date/time arithmetic.