Library: Foundation
Package: DateTime
Header: Poco/DateTimeFormatter.h
Description
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.
Member Summary
Member Functions: append, format, tzdISO, tzdRFC
Enumerations
Anonymous
UTC = 0xFFFF
Special value for timeZoneDifferential denoting UTC.
Member Functions
append
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.
append
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.
append
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.
append
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.
format
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.
format
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.
format
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.
format
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
tzdISO
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.
tzdISO
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.
tzdRFC
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.
tzdRFC
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.