X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/57a6839dcb3bba09e8228b822b290604668416fe..HEAD:/icuSources/i18n/unicode/tzfmt.h diff --git a/icuSources/i18n/unicode/tzfmt.h b/icuSources/i18n/unicode/tzfmt.h index 9551f854..6d3863b1 100644 --- a/icuSources/i18n/unicode/tzfmt.h +++ b/icuSources/i18n/unicode/tzfmt.h @@ -1,6 +1,8 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************* -* Copyright (C) 2011-2014, International Business Machines Corporation and +* Copyright (C) 2011-2015, International Business Machines Corporation and * others. All Rights Reserved. ******************************************************************************* */ @@ -14,6 +16,8 @@ #include "unicode/utypes.h" +#if U_SHOW_CPLUSPLUS_API + #if !UCONFIG_NO_FORMATTING #include "unicode/format.h" @@ -233,7 +237,15 @@ typedef enum UTimeZoneFormatParseOption { * by other styles. * @stable ICU 50 */ - UTZFMT_PARSE_OPTION_ALL_STYLES = 0x01 + UTZFMT_PARSE_OPTION_ALL_STYLES = 0x01, + /** + * When parsing a time zone display name in \link UTZFMT_STYLE_SPECIFIC_SHORT \endlink, + * look for the IANA tz database compatible zone abbreviations in addition + * to the localized names coming from the icu::TimeZoneNames currently + * used by the icu::TimeZoneFormat. + * @stable ICU 54 + */ + UTZFMT_PARSE_OPTION_TZ_DATABASE_ABBREVIATIONS = 0x02 } UTimeZoneFormatParseOption; U_CDECL_END @@ -241,6 +253,7 @@ U_CDECL_END U_NAMESPACE_BEGIN class TimeZoneGenericNames; +class TZDBTimeZoneNames; class UVector; /** @@ -294,7 +307,7 @@ public: * @return A copy of the object * @stable ICU 50 */ - virtual Format* clone() const; + virtual TimeZoneFormat* clone() const; /** * Creates an instance of TimeZoneFormat for the given locale. @@ -697,6 +710,9 @@ private: UBool fAbuttingOffsetHoursAndMinutes; + /* TZDBTimeZoneNames object used for parsing */ + TZDBTimeZoneNames* fTZDBTimeZoneNames; + /** * Returns the time zone's specific format string. * @param tz the time zone @@ -727,6 +743,13 @@ private: */ const TimeZoneGenericNames* getTimeZoneGenericNames(UErrorCode& status) const; + /** + * Lazily create a TZDBTimeZoneNames instance + * @param status receives the status + * @return the cached TZDBTimeZoneNames. + */ + const TZDBTimeZoneNames* getTZDBTimeZoneNames(UErrorCode& status) const; + /** * Private method returning the time zone's exemplar location string. * This method will never return empty. @@ -921,7 +944,7 @@ private: * @param parsedLen the parsed length, or 0 on failure. * @return the parsed offset in milliseconds. */ - int32_t parseDefaultOffsetFields(const UnicodeString& text, int32_t start, UChar separator, + int32_t parseDefaultOffsetFields(const UnicodeString& text, int32_t start, char16_t separator, int32_t& parsedLen) const; /** @@ -961,7 +984,7 @@ private: * @param maxFields The maximum fields * @return The offset string */ - static UnicodeString& formatOffsetWithAsciiDigits(int32_t offset, UChar sep, + static UnicodeString& formatOffsetWithAsciiDigits(int32_t offset, char16_t sep, OffsetFields minFields, OffsetFields maxFields, UnicodeString& result); /** @@ -991,7 +1014,7 @@ private: * @param maxFields The maximum Fields to be parsed * @return Parsed offset, 0 or positive number. */ - static int32_t parseAsciiOffsetFields(const UnicodeString& text, ParsePosition& pos, UChar sep, + static int32_t parseAsciiOffsetFields(const UnicodeString& text, ParsePosition& pos, char16_t sep, OffsetFields minFields, OffsetFields maxFields); /** @@ -1073,4 +1096,7 @@ private: U_NAMESPACE_END #endif /* !UCONFIG_NO_FORMATTING */ + +#endif /* U_SHOW_CPLUSPLUS_API */ + #endif