ICU 76.1 76.1
|
TimeZoneFormat
supports time zone display name formatting and parsing.
More...
#include <tzfmt.h>
Public Member Functions | |
TimeZoneFormat (const TimeZoneFormat &other) | |
Copy constructor. | |
virtual | ~TimeZoneFormat () |
Destructor. | |
TimeZoneFormat & | operator= (const TimeZoneFormat &other) |
Assignment operator. | |
virtual bool | operator== (const Format &other) const override |
Return true if the given Format objects are semantically equal. | |
virtual TimeZoneFormat * | clone () const override |
Clone this object polymorphically. | |
const TimeZoneNames * | getTimeZoneNames () const |
Returns the time zone display name data used by this instance. | |
void | adoptTimeZoneNames (TimeZoneNames *tznames) |
Sets the time zone display name data to this format instance. | |
void | setTimeZoneNames (const TimeZoneNames &tznames) |
Sets the time zone display name data to this format instance. | |
UnicodeString & | getGMTPattern (UnicodeString &pattern) const |
Returns the localized GMT format pattern. | |
void | setGMTPattern (const UnicodeString &pattern, UErrorCode &status) |
Sets the localized GMT format pattern. | |
UnicodeString & | getGMTOffsetPattern (UTimeZoneFormatGMTOffsetPatternType type, UnicodeString &pattern) const |
Returns the offset pattern used for localized GMT format. | |
void | setGMTOffsetPattern (UTimeZoneFormatGMTOffsetPatternType type, const UnicodeString &pattern, UErrorCode &status) |
Sets the offset pattern for the given offset type. | |
UnicodeString & | getGMTOffsetDigits (UnicodeString &digits) const |
Returns the decimal digit characters used for localized GMT format. | |
void | setGMTOffsetDigits (const UnicodeString &digits, UErrorCode &status) |
Sets the decimal digit characters used for localized GMT format. | |
UnicodeString & | getGMTZeroFormat (UnicodeString &gmtZeroFormat) const |
Returns the localized GMT format string for GMT(UTC) itself (GMT offset is 0). | |
void | setGMTZeroFormat (const UnicodeString &gmtZeroFormat, UErrorCode &status) |
Sets the localized GMT format string for GMT(UTC) itself (GMT offset is 0). | |
uint32_t | getDefaultParseOptions () const |
Returns the bitwise flags of UTimeZoneFormatParseOption representing the default parse options used by this object. | |
void | setDefaultParseOptions (uint32_t flags) |
Sets the default parse options. | |
UnicodeString & | formatOffsetISO8601Basic (int32_t offset, UBool useUtcIndicator, UBool isShort, UBool ignoreSeconds, UnicodeString &result, UErrorCode &status) const |
Returns the ISO 8601 basic time zone string for the given offset. | |
UnicodeString & | formatOffsetISO8601Extended (int32_t offset, UBool useUtcIndicator, UBool isShort, UBool ignoreSeconds, UnicodeString &result, UErrorCode &status) const |
Returns the ISO 8601 extended time zone string for the given offset. | |
UnicodeString & | formatOffsetLocalizedGMT (int32_t offset, UnicodeString &result, UErrorCode &status) const |
Returns the localized GMT(UTC) offset format for the given offset. | |
UnicodeString & | formatOffsetShortLocalizedGMT (int32_t offset, UnicodeString &result, UErrorCode &status) const |
Returns the short localized GMT(UTC) offset format for the given offset. | |
virtual UnicodeString & | format (UTimeZoneFormatStyle style, const TimeZone &tz, UDate date, UnicodeString &name, UTimeZoneFormatTimeType *timeType=nullptr) const |
Returns the display name of the time zone at the given date for the style. | |
int32_t | parseOffsetISO8601 (const UnicodeString &text, ParsePosition &pos) const |
Returns offset from GMT(UTC) in milliseconds for the given ISO 8601 style time zone string. | |
int32_t | parseOffsetLocalizedGMT (const UnicodeString &text, ParsePosition &pos) const |
Returns offset from GMT(UTC) in milliseconds for the given localized GMT offset format string. | |
int32_t | parseOffsetShortLocalizedGMT (const UnicodeString &text, ParsePosition &pos) const |
Returns offset from GMT(UTC) in milliseconds for the given short localized GMT offset format string. | |
virtual TimeZone * | parse (UTimeZoneFormatStyle style, const UnicodeString &text, ParsePosition &pos, int32_t parseOptions, UTimeZoneFormatTimeType *timeType=nullptr) const |
Returns a TimeZone by parsing the time zone string according to the given parse position, the specified format style and parse options. | |
TimeZone * | parse (UTimeZoneFormatStyle style, const UnicodeString &text, ParsePosition &pos, UTimeZoneFormatTimeType *timeType=nullptr) const |
Returns a TimeZone by parsing the time zone string according to the given parse position, the specified format style and the default parse options. | |
virtual UnicodeString & | format (const Formattable &obj, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const override |
Format an object to produce a time zone display string using localized GMT offset format. | |
virtual void | parseObject (const UnicodeString &source, Formattable &result, ParsePosition &parse_pos) const override |
Parse a string to produce an object. | |
virtual UClassID | getDynamicClassID () const override |
ICU "poor man's RTTI", returns a UClassID for the actual class. | |
UnicodeString & | format (const Formattable &obj, UnicodeString &appendTo, UErrorCode &status) const |
Formats an object to produce a string. | |
virtual UnicodeString & | format (const Formattable &obj, UnicodeString &appendTo, FieldPosition &pos, UErrorCode &status) const=0 |
Format an object to produce a string. | |
virtual UnicodeString & | format (const Formattable &obj, UnicodeString &appendTo, FieldPositionIterator *posIter, UErrorCode &status) const |
Format an object to produce a string. | |
Public Member Functions inherited from icu::Format | |
virtual | ~Format () |
Destructor. | |
bool | operator!= (const Format &other) const |
Return true if the given Format objects are not semantically equal. | |
UnicodeString & | format (const Formattable &obj, UnicodeString &appendTo, UErrorCode &status) const |
Formats an object to produce a string. | |
void | parseObject (const UnicodeString &source, Formattable &result, UErrorCode &status) const |
Parses a string to produce an object. | |
Locale | getLocale (ULocDataLocaleType type, UErrorCode &status) const |
Get the locale for this format object. | |
const char * | getLocaleID (ULocDataLocaleType type, UErrorCode &status) const |
Get the locale for this format object. | |
Public Member Functions inherited from icu::UObject | |
virtual | ~UObject () |
Destructor. | |
Static Public Member Functions | |
static TimeZoneFormat * | createInstance (const Locale &locale, UErrorCode &status) |
Creates an instance of TimeZoneFormat for the given locale. | |
static UClassID | getStaticClassID () |
ICU "poor man's RTTI", returns a UClassID for this class. | |
Protected Member Functions | |
TimeZoneFormat (const Locale &locale, UErrorCode &status) | |
Constructs a TimeZoneFormat object for the specified locale. | |
Protected Member Functions inherited from icu::Format | |
void | setLocaleIDs (const char *valid, const char *actual) |
Format () | |
Default constructor for subclass use only. | |
Format (const Format &) | |
Format & | operator= (const Format &) |
Additional Inherited Members | |
Static Protected Member Functions inherited from icu::Format | |
static void | syntaxError (const UnicodeString &pattern, int32_t pos, UParseError &parseError) |
Simple function for initializing a UParseError from a UnicodeString. | |
TimeZoneFormat
supports time zone display name formatting and parsing.
An instance of TimeZoneFormat works as a subformatter of SimpleDateFormat
, but you can also directly get a new instance of TimeZoneFormat
and formatting/parsing time zone display names.
ICU implements the time zone display names defined by UTS#35 Unicode Locale Data Markup Language (LDML). TimeZoneNames
represents the time zone display name data model and this class implements the algorithm for actual formatting and parsing.
icu::TimeZoneFormat::TimeZoneFormat | ( | const TimeZoneFormat & | other | ) |
Copy constructor.
|
protected |
Constructs a TimeZoneFormat object for the specified locale.
locale | the locale |
status | receives the status. |
void icu::TimeZoneFormat::adoptTimeZoneNames | ( | TimeZoneNames * | tznames | ) |
Sets the time zone display name data to this format instance.
The caller should not delete the TimeZoenNames object after it is adopted by this call.
tznames | TimeZoneNames object to be adopted. |
|
overridevirtual |
Clone this object polymorphically.
The caller is responsible for deleting the result when done.
Implements icu::Format.
|
static |
Creates an instance of TimeZoneFormat
for the given locale.
locale | The locale. |
status | Receives the status. |
TimeZoneFormat
for the given locale, owned by the caller.
|
overridevirtual |
Format an object to produce a time zone display string using localized GMT offset format.
This method handles Formattable objects with a TimeZone
. If a the Formattable object type is not a TimeZone
, then it returns a failing UErrorCode.
obj | The object to format. Must be a TimeZone . |
appendTo | Output parameter to receive result. Result is appended to existing contents. |
pos | On input: an alignment field, if desired. On output: the offsets of the alignment field. |
status | Output param filled with success/failure status. |
Implements icu::Format.
|
virtual |
Format an object to produce a string.
This is a pure virtual method which subclasses must implement. This method allows polymorphic formatting of Formattable objects. If a subclass of Format receives a Formattable object type it doesn't handle (e.g., if a numeric Formattable is passed to a DateFormat object) then it returns a failing UErrorCode.
obj | The object to format. |
appendTo | Output parameter to receive result. Result is appended to existing contents. |
pos | On input: an alignment field, if desired. On output: the offsets of the alignment field. |
status | Output param filled with success/failure status. |
Implements icu::Format.
|
virtual |
Format an object to produce a string.
Subclasses should override this method. This method allows polymorphic formatting of Formattable objects. If a subclass of Format receives a Formattable object type it doesn't handle (e.g., if a numeric Formattable is passed to a DateFormat object) then it returns a failing UErrorCode.
obj | The object to format. |
appendTo | Output parameter to receive result. Result is appended to existing contents. |
posIter | On return, can be used to iterate over positions of fields generated by this format call. |
status | Output param filled with success/failure status. |
Reimplemented from icu::Format.
UnicodeString & icu::Format::format | ( | const Formattable & | obj, |
UnicodeString & | appendTo, | ||
UErrorCode & | status | ||
) | const |
Formats an object to produce a string.
obj | The object to format. |
appendTo | Output parameter to receive result. Result is appended to existing contents. |
status | Output parameter filled in with success or failure status. |
|
virtual |
Returns the display name of the time zone at the given date for the style.
style | The style (e.g. UTZFMT_STYLE_GENERIC_LONG , UTZFMT_STYLE_LOCALIZED_GMT ...) |
tz | The time zone. |
date | The date. |
name | Receives the display name. |
timeType | the output argument for receiving the time type (standard/daylight/unknown) used for the display name, or nullptr if the information is not necessary. |
UnicodeString & icu::TimeZoneFormat::formatOffsetISO8601Basic | ( | int32_t | offset, |
UBool | useUtcIndicator, | ||
UBool | isShort, | ||
UBool | ignoreSeconds, | ||
UnicodeString & | result, | ||
UErrorCode & | status | ||
) | const |
Returns the ISO 8601 basic time zone string for the given offset.
For example, "-08", "-0830" and "Z"
offset | the offset from GMT(UTC) in milliseconds. |
useUtcIndicator | true if ISO 8601 UTC indicator "Z" is used when the offset is 0. |
isShort | true if shortest form is used. |
ignoreSeconds | true if non-zero offset seconds is appended. |
result | Receives the ISO format string. |
status | Receives the status |
UnicodeString & icu::TimeZoneFormat::formatOffsetISO8601Extended | ( | int32_t | offset, |
UBool | useUtcIndicator, | ||
UBool | isShort, | ||
UBool | ignoreSeconds, | ||
UnicodeString & | result, | ||
UErrorCode & | status | ||
) | const |
Returns the ISO 8601 extended time zone string for the given offset.
For example, "-08:00", "-08:30" and "Z"
offset | the offset from GMT(UTC) in milliseconds. |
useUtcIndicator | true if ISO 8601 UTC indicator "Z" is used when the offset is 0. |
isShort | true if shortest form is used. |
ignoreSeconds | true if non-zero offset seconds is appended. |
result | Receives the ISO format string. |
status | Receives the status |
UnicodeString & icu::TimeZoneFormat::formatOffsetLocalizedGMT | ( | int32_t | offset, |
UnicodeString & | result, | ||
UErrorCode & | status | ||
) | const |
Returns the localized GMT(UTC) offset format for the given offset.
The localized GMT offset is defined by;
getGMTPattern
) getGMTOffsetPattern
) getGMTOffsetDigits
) getGMTZeroFormat
) This format always uses 2 digit hours and minutes. When the given offset has non-zero seconds, 2 digit seconds field will be appended. For example, GMT+05:00 and GMT+05:28:06.
offset | the offset from GMT(UTC) in milliseconds. |
status | Receives the status |
result | Receives the localized GMT format string. |
UnicodeString & icu::TimeZoneFormat::formatOffsetShortLocalizedGMT | ( | int32_t | offset, |
UnicodeString & | result, | ||
UErrorCode & | status | ||
) | const |
Returns the short localized GMT(UTC) offset format for the given offset.
The short localized GMT offset is defined by;
getGMTPattern
) getGMTOffsetPattern
) getGMTOffsetDigits
) getGMTZeroFormat
) This format uses the shortest representation of offset. The hours field does not have leading zero and lower fields with zero will be truncated. For example, GMT+5 and GMT+530.
offset | the offset from GMT(UTC) in milliseconds. |
status | Receives the status |
result | Receives the short localized GMT format string. |
uint32_t icu::TimeZoneFormat::getDefaultParseOptions | ( | ) | const |
Returns the bitwise flags of UTimeZoneFormatParseOption representing the default parse options used by this object.
ICU "poor man's RTTI", returns a UClassID for the actual class.
Reimplemented from icu::UObject.
UnicodeString & icu::TimeZoneFormat::getGMTOffsetDigits | ( | UnicodeString & | digits | ) | const |
Returns the decimal digit characters used for localized GMT format.
The return string contains exactly 10 code points (may include Unicode supplementary character) representing digit 0 to digit 9 in the ascending order.
digits | Receives the decimal digits used for localized GMT format. |
UnicodeString & icu::TimeZoneFormat::getGMTOffsetPattern | ( | UTimeZoneFormatGMTOffsetPatternType | type, |
UnicodeString & | pattern | ||
) | const |
Returns the offset pattern used for localized GMT format.
type | The offset pattern type enum. |
pattern | Receives the offset pattern. |
UnicodeString & icu::TimeZoneFormat::getGMTPattern | ( | UnicodeString & | pattern | ) | const |
Returns the localized GMT format pattern.
pattern | Receives the localized GMT format pattern. |
UnicodeString & icu::TimeZoneFormat::getGMTZeroFormat | ( | UnicodeString & | gmtZeroFormat | ) | const |
Returns the localized GMT format string for GMT(UTC) itself (GMT offset is 0).
gmtZeroFormat | Receives the localized GMT string string for GMT(UTC) itself. |
ICU "poor man's RTTI", returns a UClassID for this class.
const TimeZoneNames * icu::TimeZoneFormat::getTimeZoneNames | ( | ) | const |
Returns the time zone display name data used by this instance.
TimeZoneFormat & icu::TimeZoneFormat::operator= | ( | const TimeZoneFormat & | other | ) |
Assignment operator.
Return true if the given Format objects are semantically equal.
Objects of different subclasses are considered unequal.
other | The object to be compared with. |
Implements icu::Format.
|
virtual |
Returns a TimeZone
by parsing the time zone string according to the given parse position, the specified format style and parse options.
text | The text contains a time zone string at the position. |
style | The format style |
pos | The position. |
parseOptions | The parse options represented by bitwise flags of UTimeZoneFormatParseOption. |
timeType | The output argument for receiving the time type (standard/daylight/unknown), or nullptr if the information is not necessary. |
TimeZone
, or null if the input could not be parsed. TimeZone * icu::TimeZoneFormat::parse | ( | UTimeZoneFormatStyle | style, |
const UnicodeString & | text, | ||
ParsePosition & | pos, | ||
UTimeZoneFormatTimeType * | timeType = nullptr |
||
) | const |
Returns a TimeZone
by parsing the time zone string according to the given parse position, the specified format style and the default parse options.
text | The text contains a time zone string at the position. |
style | The format style |
pos | The position. |
timeType | The output argument for receiving the time type (standard/daylight/unknown), or nullptr if the information is not necessary. |
TimeZone
, or null if the input could not be parsed.
|
overridevirtual |
Parse a string to produce an object.
This methods handles parsing of time zone display strings into Formattable objects with TimeZone
.
source | The string to be parsed into an object. |
result | Formattable to be set to the parse result. If parse fails, return contents are undefined. |
parse_pos | The position to start parsing at. Upon return this param is set to the position after the last character successfully parsed. If the source is not parsed successfully, this param will remain unchanged. |
Implements icu::Format.
int32_t icu::TimeZoneFormat::parseOffsetISO8601 | ( | const UnicodeString & | text, |
ParsePosition & | pos | ||
) | const |
Returns offset from GMT(UTC) in milliseconds for the given ISO 8601 style time zone string.
When the given string is not an ISO 8601 time zone string, this method sets the current position as the error index to ParsePosition pos
and returns 0.
text | The text contains ISO8601 style time zone string (e.g. "-08:00", "Z") at the position. |
pos | The ParsePosition object. |
int32_t icu::TimeZoneFormat::parseOffsetLocalizedGMT | ( | const UnicodeString & | text, |
ParsePosition & | pos | ||
) | const |
Returns offset from GMT(UTC) in milliseconds for the given localized GMT offset format string.
When the given string cannot be parsed, this method sets the current position as the error index to ParsePosition pos
and returns 0.
text | The text contains a localized GMT offset string at the position. |
pos | The ParsePosition object. |
int32_t icu::TimeZoneFormat::parseOffsetShortLocalizedGMT | ( | const UnicodeString & | text, |
ParsePosition & | pos | ||
) | const |
Returns offset from GMT(UTC) in milliseconds for the given short localized GMT offset format string.
When the given string cannot be parsed, this method sets the current position as the error index to ParsePosition pos
and returns 0.
text | The text contains a short localized GMT offset string at the position. |
pos | The ParsePosition object. |
Sets the default parse options.
Note: By default, an instance of TimeZoneFormat
created by createInstance
has no parse options set (UTZFMT_PARSE_OPTION_NONE). To specify multiple options, use bitwise flags of UTimeZoneFormatParseOption.
void icu::TimeZoneFormat::setGMTOffsetDigits | ( | const UnicodeString & | digits, |
UErrorCode & | status | ||
) |
Sets the decimal digit characters used for localized GMT format.
The input digits
must contain exactly 10 code points (Unicode supplementary characters are also allowed) representing digit 0 to digit 9 in the ascending order. When the input digits
does not satisfy the condition, U_ILLEGAL_ARGUMENT_ERROR
will be set to the return status.
digits | The decimal digits used for localized GMT format. |
status | Receives the status. |
void icu::TimeZoneFormat::setGMTOffsetPattern | ( | UTimeZoneFormatGMTOffsetPatternType | type, |
const UnicodeString & | pattern, | ||
UErrorCode & | status | ||
) |
Sets the offset pattern for the given offset type.
type | The offset pattern type enum. |
pattern | The offset pattern used for localized GMT format for the type. |
status | Receives the status. |
void icu::TimeZoneFormat::setGMTPattern | ( | const UnicodeString & | pattern, |
UErrorCode & | status | ||
) |
Sets the localized GMT format pattern.
The pattern must contain a single argument {0}, for example "GMT {0}".
pattern | The localized GMT format pattern to be used by this object. |
status | Receives the status. |
void icu::TimeZoneFormat::setGMTZeroFormat | ( | const UnicodeString & | gmtZeroFormat, |
UErrorCode & | status | ||
) |
Sets the localized GMT format string for GMT(UTC) itself (GMT offset is 0).
gmtZeroFormat | The localized GMT format string for GMT(UTC). |
status | Receives the status. |
void icu::TimeZoneFormat::setTimeZoneNames | ( | const TimeZoneNames & | tznames | ) |
Sets the time zone display name data to this format instance.
tznames | TimeZoneNames object to be set. |