Base module

DateTimeFormatter

This class converts dates and times into strings, supporting a variety of standard and custom formats.

DateTimeFormatter

#include <icy/datetime.h>

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 containin the formatted value.

  • append* functions append the formatted value to an existing string.

Public Static Methods

ReturnNameDescription
std::stringformat static inlineFormats 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.
std::stringformat static inlineFormats the given date and time according to the given format. See format(const Timestamp&, std::string_view, int) for more information.
std::stringformat static inlineFormats the given local date and time according to the given format. See format(const Timestamp&, std::string_view, int) for more information.
std::stringformat static inlineFormats 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.
voidappend static inlineFormats the given timestamp according to the given format and appends it to str.
voidappend staticFormats the given date and time according to the given format and appends it to str.
voidappend staticFormats the given local date and time according to the given format and appends it to str.
voidappend staticFormats the given timespan according to the given format and appends it to str.
std::stringtzdISO static inlineFormats the given timezone differential in ISO format. If timeZoneDifferential is UTC, "Z" is returned, otherwise, +HH.MM (or -HH.MM) is returned.
std::stringtzdRFC static inlineFormats the given timezone differential in RFC format. If timeZoneDifferential is UTC, "GMT" is returned, otherwise ++HHMM (or -HHMM) is returned.
voidtzdISO staticFormats 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.
voidtzdRFC staticFormats 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.

format

static inline

static inline std::string format(const Timestamp & timestamp, std::string_view fmt, int timeZoneDifferential)

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 inline

static inline std::string format(const DateTime & dateTime, std::string_view fmt, int timeZoneDifferential)

Formats the given date and time according to the given format. See format(const Timestamp&, std::string_view, int) for more information.


format

static inline

static inline std::string format(const LocalDateTime & dateTime, std::string_view fmt)

Formats the given local date and time according to the given format. See format(const Timestamp&, std::string_view, int) for more information.


format

static inline

static inline std::string format(const Timespan & timespan, std::string_view fmt)

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


append

static inline

static inline void append(std::string & str, const Timestamp & timestamp, std::string_view fmt, int timeZoneDifferential)

Formats the given timestamp according to the given format and appends it to str.

See format() for documentation of the formatting string.


append

static

static void append(std::string & str, const DateTime & dateTime, std::string_view fmt, int timeZoneDifferential)

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

static void append(std::string & str, const LocalDateTime & dateTime, std::string_view 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

static void append(std::string & str, const Timespan & timespan, std::string_view fmt)

Formats the given timespan according to the given format and appends it to str.

See format() for documentation of the formatting string.


tzdISO

static inline

static inline 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.


tzdRFC

static inline

static inline 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.


tzdISO

static

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

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.

Public Types

NameDescription
``

enum 
ValueDescription
UTCSpecial value for timeZoneDifferential denoting UTC.