| /* |
| ******************************************************************************* |
| * Copyright (C) 2011, International Business Machines Corporation and * |
| * others. All Rights Reserved. * |
| ******************************************************************************* |
| */ |
| #ifndef __TZFMT_H |
| #define __TZFMT_H |
| |
| #include "unicode/utypes.h" |
| |
| #if !UCONFIG_NO_FORMATTING |
| |
| #include "unicode/uobject.h" |
| #include "unicode/uloc.h" |
| #include "unicode/unistr.h" |
| #include "unicode/format.h" |
| #include "unicode/timezone.h" |
| #include "tznames.h" |
| |
| U_CDECL_BEGIN |
| |
| typedef enum UTimeZoneFormatStyle { |
| UTZFMT_STYLE_LOCATION, |
| UTZFMT_STYLE_GENERIC_LONG, |
| UTZFMT_STYLE_GENERIC_SHORT, |
| UTZFMT_STYLE_SPECIFIC_LONG, |
| UTZFMT_STYLE_SPECIFIC_SHORT |
| } UTimeZoneFormatStyle; |
| |
| typedef enum UTimeZoneTimeType { |
| UTZFMT_TIME_TYPE_UNKNOWN, |
| UTZFMT_TIME_TYPE_STANDARD, |
| UTZFMT_TIME_TYPE_DAYLIGHT |
| } UTimeZoneTimeType; |
| |
| U_CDECL_END |
| |
| U_NAMESPACE_BEGIN |
| |
| class TimeZoneNames; |
| |
| class U_I18N_API TimeZoneFormat : public UMemory { |
| public: |
| virtual ~TimeZoneFormat(); |
| |
| static TimeZoneFormat* U_EXPORT2 createInstance(const Locale& locale, UErrorCode& status); |
| |
| virtual const TimeZoneNames* getTimeZoneNames() const = 0; |
| |
| virtual UnicodeString& format(UTimeZoneFormatStyle style, const TimeZone& tz, UDate date, |
| UnicodeString& name, UTimeZoneTimeType* timeType = NULL) const = 0; |
| |
| virtual UnicodeString& parse(UTimeZoneFormatStyle style, const UnicodeString& text, ParsePosition& pos, |
| UnicodeString& tzID, UTimeZoneTimeType* timeType = NULL) const = 0; |
| |
| TimeZone* parse(UTimeZoneFormatStyle style, const UnicodeString& text, ParsePosition& pos, |
| UTimeZoneTimeType* timeType = NULL) const; |
| }; |
| |
| U_NAMESPACE_END |
| |
| #endif |
| #endif |