/* ******************************************************************************* * 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, UTZFMT_STYLE_SPECIFIC_SHORT_COMMONLY_USED } 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