class Poco::DateTimeFormatter
Overview
This class converts dates and times into strings, supporting a variety of standard and custom formats. More…
#include <DateTimeFormatter.h> class DateTimeFormatter { public: // enums enum { UTC = 0xFFFF, }; // methods static std::string format( const Timestamp& timestamp, const std::string& fmt, int timeZoneDifferential = UTC ); static std::string format( const DateTime& dateTime, const std::string& fmt, int timeZoneDifferential = UTC ); static std::string format( const LocalDateTime& dateTime, const std::string& fmt ); static std::string format( const Timespan& timespan, const std::string& fmt = "%dd %H:%M:%S.%i" ); static void append( std::string& str, const Timestamp& timestamp, const std::string& fmt, int timeZoneDifferential = UTC ); static void append( std::string& str, const DateTime& dateTime, const std::string& fmt, int timeZoneDifferential = UTC ); static void append( std::string& str, const LocalDateTime& dateTime, const std::string& fmt ); static void append( std::string& str, const Timespan& timespan, const std::string& fmt = "%dd %H:%M:%S.%i" ); static std::string tzdISO(int timeZoneDifferential); static std::string tzdRFC(int timeZoneDifferential); static void tzdISO( std::string& str, int timeZoneDifferential ); static void tzdRFC( std::string& str, int timeZoneDifferential ); };
Detailed Documentation
This class converts dates and times into strings, supporting a variety of standard and custom formats.
There are two kind of static member functions:
* format* functions return a std::string containing the formatted value. * append* functions append the formatted value to an existing string.
Enum Values
UTC
Special value for timeZoneDifferential denoting UTC.
Methods
static std::string format( const Timestamp& timestamp, const std::string& fmt, int timeZoneDifferential = UTC )
Formats the given timestamp according to the given format.
The format string is used as a template to format the date and is copied character by character except for the following special characters, which are replaced by the corresponding value.
* %w - abbreviated weekday (Mon, Tue, ...) * %W - full weekday (Monday, Tuesday, ...) * %b - abbreviated month (Jan, Feb, ...) * %B - full month (January, February, ...) * %d - zero-padded day of month (01 .. 31) * %e - day of month (1 .. 31) * %f - space-padded day of month ( 1 .. 31) * %m - zero-padded month (01 .. 12) * %n - month (1 .. 12) * %o - space-padded month ( 1 .. 12) * %y - year without century (70) * %Y - year with century (1970) * %H - hour (00 .. 23) * %h - hour (00 .. 12) * %a - am/pm * %A - AM/PM * %M - minute (00 .. 59) * %S - second (00 .. 59) * %s - seconds and microseconds (equivalent to %S.%F) * %i - millisecond (000 .. 999) * %c - centisecond (0 .. 9) * %F - fractional seconds/microseconds (000000 - 999999) * %z - time zone differential in ISO 8601 format (Z or +NN.NN) * %Z - time zone differential in RFC format (GMT or +NNNN) * %% - percent sign
Class DateTimeFormat defines format strings for various standard date/time formats.
static std::string format( const DateTime& dateTime, const std::string& fmt, int timeZoneDifferential = UTC )
Formats the given date and time according to the given format.
See format(const Timestamp&, const std::string&, int) for more information.
static std::string format( const LocalDateTime& dateTime, const std::string& fmt )
Formats the given local date and time according to the given format.
See format(const Timestamp&, const std::string&, int) for more information.
static std::string format( const Timespan& timespan, const std::string& fmt = "%dd %H:%M:%S.%i" )
Formats the given timespan according to the given format.
The format string is used as a template to format the date and is copied character by character except for the following special characters, which are replaced by the corresponding value.
* %d - days * %H - hours (00 .. 23) * %h - total hours (0 .. n) * %M - minutes (00 .. 59) * %m - total minutes (0 .. n) * %S - seconds (00 .. 59) * %s - total seconds (0 .. n) * %i - milliseconds (000 .. 999) * %c - centisecond (0 .. 9) * %F - fractional seconds/microseconds (000000 - 999999) * %% - percent sign
static void append( std::string& str, const Timestamp& timestamp, const std::string& fmt, int timeZoneDifferential = UTC )
Formats the given timestamp according to the given format and appends it to str.
See format() for documentation of the formatting string.
static void append( std::string& str, const DateTime& dateTime, const std::string& fmt, int timeZoneDifferential = UTC )
Formats the given date and time according to the given format and appends it to str.
See format() for documentation of the formatting string.
static void append( std::string& str, const LocalDateTime& dateTime, const std::string& fmt )
Formats the given local date and time according to the given format and appends it to str.
See format() for documentation of the formatting string.
static void append( std::string& str, const Timespan& timespan, const std::string& fmt = "%dd %H:%M:%S.%i" )
Formats the given timespan according to the given format and appends it to str.
See format() for documentation of the formatting string.
static std::string tzdISO(int timeZoneDifferential)
Formats the given timezone differential in ISO format.
If timeZoneDifferential is UTC, “Z” is returned, otherwise, +HH.MM (or -HH.MM) is returned.
static std::string tzdRFC(int timeZoneDifferential)
Formats the given timezone differential in RFC format.
If timeZoneDifferential is UTC, “GMT” is returned, otherwise ++HHMM (or -HHMM) is returned.
static void tzdISO( std::string& str, int timeZoneDifferential )
Formats the given timezone differential in ISO format and appends it to the given string.
If timeZoneDifferential is UTC, “Z” is returned, otherwise, +HH.MM (or -HH.MM) is returned.
static void tzdRFC( std::string& str, int timeZoneDifferential )
Formats the given timezone differential in RFC format and appends it to the given string.
If timeZoneDifferential is UTC, “GMT” is returned, otherwise ++HHMM (or -HHMM) is returned.