blob: 0222e6ae0c29a8de6efcbd5540644f70e7bcd545 [file] [log] [blame]
/*
*******************************************************************************
* 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