udatpg.h
Go to the documentation of this file.
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
*
* Copyright (C) 2007-2015, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
* file name: udatpg.h
* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
* created on: 2007jul30
* created by: Markus W. Scherer
*/
#ifndef __UDATPG_H__
#define __UDATPG_H__
#include "unicode/utypes.h"
#include "unicode/udat.h"
#include "unicode/uenum.h"
#if U_SHOW_CPLUSPLUS_API
#include "unicode/localpointer.h"
#endif // U_SHOW_CPLUSPLUS_API
typedef void *UDateTimePatternGenerator;
typedef enum UDateTimePatternField {
UDATPG_ERA_FIELD,
UDATPG_YEAR_FIELD,
UDATPG_QUARTER_FIELD,
UDATPG_MONTH_FIELD,
UDATPG_WEEK_OF_YEAR_FIELD,
UDATPG_WEEK_OF_MONTH_FIELD,
UDATPG_WEEKDAY_FIELD,
UDATPG_DAY_OF_YEAR_FIELD,
UDATPG_DAY_OF_WEEK_IN_MONTH_FIELD,
UDATPG_DAY_FIELD,
UDATPG_DAYPERIOD_FIELD,
UDATPG_HOUR_FIELD,
UDATPG_MINUTE_FIELD,
UDATPG_SECOND_FIELD,
UDATPG_FRACTIONAL_SECOND_FIELD,
UDATPG_ZONE_FIELD,
/* Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API,
* it is needed for layout of DateTimePatternGenerator object. */
#ifndef U_FORCE_HIDE_DEPRECATED_API
UDATPG_FIELD_COUNT
#endif // U_FORCE_HIDE_DEPRECATED_API
} UDateTimePatternField;
typedef enum UDateTimePGDisplayWidth {
UDATPG_WIDE,
UDATPG_ABBREVIATED,
UDATPG_NARROW
} UDateTimePGDisplayWidth;
typedef enum UDateTimePatternMatchOptions {
UDATPG_MATCH_NO_OPTIONS = 0,
UDATPG_MATCH_HOUR_FIELD_LENGTH = 1 << UDATPG_HOUR_FIELD,
#ifndef U_HIDE_INTERNAL_API
UDATPG_MATCH_MINUTE_FIELD_LENGTH = 1 << UDATPG_MINUTE_FIELD,
UDATPG_MATCH_SECOND_FIELD_LENGTH = 1 << UDATPG_SECOND_FIELD,
#endif /* U_HIDE_INTERNAL_API */
UDATPG_MATCH_ALL_FIELDS_LENGTH = (1 << UDATPG_FIELD_COUNT) - 1
} UDateTimePatternMatchOptions;
typedef enum UDateTimePatternConflict {
UDATPG_NO_CONFLICT,
UDATPG_BASE_CONFLICT,
UDATPG_CONFLICT,
#ifndef U_HIDE_DEPRECATED_API
UDATPG_CONFLICT_COUNT
#endif // U_HIDE_DEPRECATED_API
} UDateTimePatternConflict;
U_CAPI UDateTimePatternGenerator * U_EXPORT2
udatpg_open(const char *locale, UErrorCode *pErrorCode);
U_CAPI UDateTimePatternGenerator * U_EXPORT2
udatpg_openEmpty(UErrorCode *pErrorCode);
U_CAPI void U_EXPORT2
udatpg_close(UDateTimePatternGenerator *dtpg);
#if U_SHOW_CPLUSPLUS_API
U_NAMESPACE_BEGIN
U_DEFINE_LOCAL_OPEN_POINTER(LocalUDateTimePatternGeneratorPointer, UDateTimePatternGenerator, udatpg_close);
U_NAMESPACE_END
#endif
U_CAPI UDateTimePatternGenerator * U_EXPORT2
udatpg_clone(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode);
U_CAPI int32_t U_EXPORT2
udatpg_getBestPattern(UDateTimePatternGenerator *dtpg,
const UChar *skeleton, int32_t length,
UChar *bestPattern, int32_t capacity,
UErrorCode *pErrorCode);
U_CAPI int32_t U_EXPORT2
udatpg_getBestPatternWithOptions(UDateTimePatternGenerator *dtpg,
const UChar *skeleton, int32_t length,
UDateTimePatternMatchOptions options,
UChar *bestPattern, int32_t capacity,
UErrorCode *pErrorCode);
U_CAPI int32_t U_EXPORT2
udatpg_getSkeleton(UDateTimePatternGenerator *unusedDtpg,
const UChar *pattern, int32_t length,
UChar *skeleton, int32_t capacity,
UErrorCode *pErrorCode);
U_CAPI int32_t U_EXPORT2
udatpg_getBaseSkeleton(UDateTimePatternGenerator *unusedDtpg,
const UChar *pattern, int32_t length,
UChar *baseSkeleton, int32_t capacity,
UErrorCode *pErrorCode);
U_CAPI UDateTimePatternConflict U_EXPORT2
udatpg_addPattern(UDateTimePatternGenerator *dtpg,
const UChar *pattern, int32_t patternLength,
UBool override,
UChar *conflictingPattern, int32_t capacity, int32_t *pLength,
UErrorCode *pErrorCode);
U_CAPI void U_EXPORT2
udatpg_setAppendItemFormat(UDateTimePatternGenerator *dtpg,
UDateTimePatternField field,
const UChar *value, int32_t length);
U_CAPI const UChar * U_EXPORT2
udatpg_getAppendItemFormat(const UDateTimePatternGenerator *dtpg,
UDateTimePatternField field,
int32_t *pLength);
U_CAPI void U_EXPORT2
udatpg_setAppendItemName(UDateTimePatternGenerator *dtpg,
UDateTimePatternField field,
const UChar *value, int32_t length);
U_CAPI const UChar * U_EXPORT2
udatpg_getAppendItemName(const UDateTimePatternGenerator *dtpg,
UDateTimePatternField field,
int32_t *pLength);
U_CAPI int32_t U_EXPORT2
udatpg_getFieldDisplayName(const UDateTimePatternGenerator *dtpg,
UDateTimePatternField field,
UDateTimePGDisplayWidth width,
UChar *fieldName, int32_t capacity,
UErrorCode *pErrorCode);
U_CAPI void U_EXPORT2
udatpg_setDateTimeFormat(const UDateTimePatternGenerator *dtpg,
const UChar *dtFormat, int32_t length);
U_CAPI const UChar * U_EXPORT2
udatpg_getDateTimeFormat(const UDateTimePatternGenerator *dtpg,
int32_t *pLength);
#if !UCONFIG_NO_FORMATTING
U_CAPI void U_EXPORT2
udatpg_setDateTimeFormatForStyle(UDateTimePatternGenerator *udtpg,
UDateFormatStyle style,
const UChar *dateTimeFormat, int32_t length,
UErrorCode *pErrorCode);
U_CAPI const UChar* U_EXPORT2
udatpg_getDateTimeFormatForStyle(const UDateTimePatternGenerator *udtpg,
UDateFormatStyle style, int32_t *pLength,
UErrorCode *pErrorCode);
#endif /* #if !UCONFIG_NO_FORMATTING */
U_CAPI void U_EXPORT2
udatpg_setDecimal(UDateTimePatternGenerator *dtpg,
const UChar *decimal, int32_t length);
U_CAPI const UChar * U_EXPORT2
udatpg_getDecimal(const UDateTimePatternGenerator *dtpg,
int32_t *pLength);
U_CAPI int32_t U_EXPORT2
udatpg_replaceFieldTypes(UDateTimePatternGenerator *dtpg,
const UChar *pattern, int32_t patternLength,
const UChar *skeleton, int32_t skeletonLength,
UChar *dest, int32_t destCapacity,
UErrorCode *pErrorCode);
U_CAPI int32_t U_EXPORT2
udatpg_replaceFieldTypesWithOptions(UDateTimePatternGenerator *dtpg,
const UChar *pattern, int32_t patternLength,
const UChar *skeleton, int32_t skeletonLength,
UDateTimePatternMatchOptions options,
UChar *dest, int32_t destCapacity,
UErrorCode *pErrorCode);
U_CAPI UEnumeration * U_EXPORT2
udatpg_openSkeletons(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode);
U_CAPI UEnumeration * U_EXPORT2
udatpg_openBaseSkeletons(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode);
U_CAPI const UChar * U_EXPORT2
udatpg_getPatternForSkeleton(const UDateTimePatternGenerator *dtpg,
const UChar *skeleton, int32_t skeletonLength,
int32_t *pLength);
#if !UCONFIG_NO_FORMATTING
U_CAPI UDateFormatHourCycle U_EXPORT2
udatpg_getDefaultHourCycle(const UDateTimePatternGenerator *dtpg, UErrorCode* pErrorCode);
#endif /* #if !UCONFIG_NO_FORMATTING */
#endif
LocalUDateTimePatternGeneratorPointer
"Smart pointer" class, closes a UDateTimePatternGenerator via udatpg_close().
localpointer.h
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
U_DEFINE_LOCAL_OPEN_POINTER
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition: localpointer.h:550
udat.h
C API: DateFormat.
UDateFormatStyle
UDateFormatStyle
The possible date/time format styles.
Definition: udat.h:162
UDateFormatHourCycle
UDateFormatHourCycle
Hour Cycle.
Definition: udat.h:983
udatpg_getBestPatternWithOptions
U_CAPI int32_t udatpg_getBestPatternWithOptions(UDateTimePatternGenerator *dtpg, const UChar *skeleton, int32_t length, UDateTimePatternMatchOptions options, UChar *bestPattern, int32_t capacity, UErrorCode *pErrorCode)
Get the best pattern matching the input skeleton.
udatpg_openBaseSkeletons
U_CAPI UEnumeration * udatpg_openBaseSkeletons(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode)
Return a UEnumeration list of all the base skeletons in canonical form.
UDateTimePGDisplayWidth
UDateTimePGDisplayWidth
Field display name width constants for udatpg_getFieldDisplayName().
Definition: udatpg.h:108
UDATPG_ABBREVIATED
@ UDATPG_ABBREVIATED
Definition: udatpg.h:112
UDATPG_WIDE
@ UDATPG_WIDE
Definition: udatpg.h:110
UDATPG_NARROW
@ UDATPG_NARROW
Definition: udatpg.h:114
udatpg_close
U_CAPI void udatpg_close(UDateTimePatternGenerator *dtpg)
Close a generator.
udatpg_getDateTimeFormat
U_CAPI const UChar * udatpg_getDateTimeFormat(const UDateTimePatternGenerator *dtpg, int32_t *pLength)
Getter corresponding to setDateTimeFormat.
udatpg_getDateTimeFormatForStyle
U_CAPI const UChar * udatpg_getDateTimeFormatForStyle(const UDateTimePatternGenerator *udtpg, UDateFormatStyle style, int32_t *pLength, UErrorCode *pErrorCode)
Getter corresponding to udatpg_setDateTimeFormatForStyle.
udatpg_openSkeletons
U_CAPI UEnumeration * udatpg_openSkeletons(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode)
Return a UEnumeration list of all the skeletons in canonical form.
UDateTimePatternGenerator
void * UDateTimePatternGenerator
Opaque type for a date/time pattern generator object.
Definition: udatpg.h:51
udatpg_getAppendItemFormat
U_CAPI const UChar * udatpg_getAppendItemFormat(const UDateTimePatternGenerator *dtpg, UDateTimePatternField field, int32_t *pLength)
Getter corresponding to setAppendItemFormat.
udatpg_setDecimal
U_CAPI void udatpg_setDecimal(UDateTimePatternGenerator *dtpg, const UChar *decimal, int32_t length)
The decimal value is used in formatting fractions of seconds.
udatpg_addPattern
U_CAPI UDateTimePatternConflict udatpg_addPattern(UDateTimePatternGenerator *dtpg, const UChar *pattern, int32_t patternLength, UBool override, UChar *conflictingPattern, int32_t capacity, int32_t *pLength, UErrorCode *pErrorCode)
Adds a pattern to the generator.
udatpg_setAppendItemFormat
U_CAPI void udatpg_setAppendItemFormat(UDateTimePatternGenerator *dtpg, UDateTimePatternField field, const UChar *value, int32_t length)
An AppendItem format is a pattern used to append a field if there is no good match.
udatpg_getBestPattern
U_CAPI int32_t udatpg_getBestPattern(UDateTimePatternGenerator *dtpg, const UChar *skeleton, int32_t length, UChar *bestPattern, int32_t capacity, UErrorCode *pErrorCode)
Get the best pattern matching the input skeleton.
udatpg_open
U_CAPI UDateTimePatternGenerator * udatpg_open(const char *locale, UErrorCode *pErrorCode)
Open a generator according to a given locale.
udatpg_getSkeleton
U_CAPI int32_t udatpg_getSkeleton(UDateTimePatternGenerator *unusedDtpg, const UChar *pattern, int32_t length, UChar *skeleton, int32_t capacity, UErrorCode *pErrorCode)
Get a unique skeleton from a given pattern.
UDateTimePatternConflict
UDateTimePatternConflict
Status return values from udatpg_addPattern().
Definition: udatpg.h:143
UDATPG_NO_CONFLICT
@ UDATPG_NO_CONFLICT
Definition: udatpg.h:145
UDATPG_BASE_CONFLICT
@ UDATPG_BASE_CONFLICT
Definition: udatpg.h:147
UDATPG_CONFLICT
@ UDATPG_CONFLICT
Definition: udatpg.h:149
UDATPG_CONFLICT_COUNT
@ UDATPG_CONFLICT_COUNT
One more than the highest normal UDateTimePatternConflict value.
Definition: udatpg.h:155
udatpg_replaceFieldTypes
U_CAPI int32_t udatpg_replaceFieldTypes(UDateTimePatternGenerator *dtpg, const UChar *pattern, int32_t patternLength, const UChar *skeleton, int32_t skeletonLength, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode)
Adjusts the field types (width and subtype) of a pattern to match what is in a skeleton.
udatpg_getPatternForSkeleton
U_CAPI const UChar * udatpg_getPatternForSkeleton(const UDateTimePatternGenerator *dtpg, const UChar *skeleton, int32_t skeletonLength, int32_t *pLength)
Get the pattern corresponding to a given skeleton.
udatpg_setAppendItemName
U_CAPI void udatpg_setAppendItemName(UDateTimePatternGenerator *dtpg, UDateTimePatternField field, const UChar *value, int32_t length)
Set the name of field, eg "era" in English for ERA.
udatpg_setDateTimeFormatForStyle
U_CAPI void udatpg_setDateTimeFormatForStyle(UDateTimePatternGenerator *udtpg, UDateFormatStyle style, const UChar *dateTimeFormat, int32_t length, UErrorCode *pErrorCode)
dateTimeFormats are message patterns used to compose combinations of date and time patterns.
udatpg_setDateTimeFormat
U_CAPI void udatpg_setDateTimeFormat(const UDateTimePatternGenerator *dtpg, const UChar *dtFormat, int32_t length)
The DateTimeFormat is a message format pattern used to compose date and time patterns.
UDateTimePatternMatchOptions
UDateTimePatternMatchOptions
Masks to control forcing the length of specified fields in the returned pattern to match those in the...
Definition: udatpg.h:124
UDATPG_MATCH_HOUR_FIELD_LENGTH
@ UDATPG_MATCH_HOUR_FIELD_LENGTH
Definition: udatpg.h:128
UDATPG_MATCH_MINUTE_FIELD_LENGTH
@ UDATPG_MATCH_MINUTE_FIELD_LENGTH
Definition: udatpg.h:131
UDATPG_MATCH_SECOND_FIELD_LENGTH
@ UDATPG_MATCH_SECOND_FIELD_LENGTH
Definition: udatpg.h:133
UDATPG_MATCH_NO_OPTIONS
@ UDATPG_MATCH_NO_OPTIONS
Definition: udatpg.h:126
UDATPG_MATCH_ALL_FIELDS_LENGTH
@ UDATPG_MATCH_ALL_FIELDS_LENGTH
Definition: udatpg.h:136
udatpg_getDefaultHourCycle
U_CAPI UDateFormatHourCycle udatpg_getDefaultHourCycle(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode)
Return the default hour cycle for a locale.
udatpg_clone
U_CAPI UDateTimePatternGenerator * udatpg_clone(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode)
Create a copy pf a generator.
udatpg_replaceFieldTypesWithOptions
U_CAPI int32_t udatpg_replaceFieldTypesWithOptions(UDateTimePatternGenerator *dtpg, const UChar *pattern, int32_t patternLength, const UChar *skeleton, int32_t skeletonLength, UDateTimePatternMatchOptions options, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode)
Adjusts the field types (width and subtype) of a pattern to match what is in a skeleton.
udatpg_getFieldDisplayName
U_CAPI int32_t udatpg_getFieldDisplayName(const UDateTimePatternGenerator *dtpg, UDateTimePatternField field, UDateTimePGDisplayWidth width, UChar *fieldName, int32_t capacity, UErrorCode *pErrorCode)
The general interface to get a display name for a particular date/time field, in one of several possi...
udatpg_getBaseSkeleton
U_CAPI int32_t udatpg_getBaseSkeleton(UDateTimePatternGenerator *unusedDtpg, const UChar *pattern, int32_t length, UChar *baseSkeleton, int32_t capacity, UErrorCode *pErrorCode)
Get a unique base skeleton from a given pattern.
udatpg_getDecimal
U_CAPI const UChar * udatpg_getDecimal(const UDateTimePatternGenerator *dtpg, int32_t *pLength)
Getter corresponding to setDecimal.
udatpg_openEmpty
U_CAPI UDateTimePatternGenerator * udatpg_openEmpty(UErrorCode *pErrorCode)
Open an empty generator, to be constructed with udatpg_addPattern(...) etc.
udatpg_getAppendItemName
U_CAPI const UChar * udatpg_getAppendItemName(const UDateTimePatternGenerator *dtpg, UDateTimePatternField field, int32_t *pLength)
Getter corresponding to setAppendItemNames.
UDateTimePatternField
UDateTimePatternField
Field number constants for udatpg_getAppendItemFormats() and similar functions.
Definition: udatpg.h:59
UDATPG_WEEK_OF_YEAR_FIELD
@ UDATPG_WEEK_OF_YEAR_FIELD
Definition: udatpg.h:69
UDATPG_DAY_OF_YEAR_FIELD
@ UDATPG_DAY_OF_YEAR_FIELD
Definition: udatpg.h:75
UDATPG_QUARTER_FIELD
@ UDATPG_QUARTER_FIELD
Definition: udatpg.h:65
UDATPG_WEEKDAY_FIELD
@ UDATPG_WEEKDAY_FIELD
Definition: udatpg.h:73
UDATPG_DAYPERIOD_FIELD
@ UDATPG_DAYPERIOD_FIELD
Definition: udatpg.h:81
UDATPG_MONTH_FIELD
@ UDATPG_MONTH_FIELD
Definition: udatpg.h:67
UDATPG_DAY_FIELD
@ UDATPG_DAY_FIELD
Definition: udatpg.h:79
UDATPG_SECOND_FIELD
@ UDATPG_SECOND_FIELD
Definition: udatpg.h:87
UDATPG_ZONE_FIELD
@ UDATPG_ZONE_FIELD
Definition: udatpg.h:91
UDATPG_FRACTIONAL_SECOND_FIELD
@ UDATPG_FRACTIONAL_SECOND_FIELD
Definition: udatpg.h:89
UDATPG_DAY_OF_WEEK_IN_MONTH_FIELD
@ UDATPG_DAY_OF_WEEK_IN_MONTH_FIELD
Definition: udatpg.h:77
UDATPG_YEAR_FIELD
@ UDATPG_YEAR_FIELD
Definition: udatpg.h:63
UDATPG_FIELD_COUNT
@ UDATPG_FIELD_COUNT
One more than the highest normal UDateTimePatternField value.
Definition: udatpg.h:100
UDATPG_WEEK_OF_MONTH_FIELD
@ UDATPG_WEEK_OF_MONTH_FIELD
Definition: udatpg.h:71
UDATPG_HOUR_FIELD
@ UDATPG_HOUR_FIELD
Definition: udatpg.h:83
UDATPG_ERA_FIELD
@ UDATPG_ERA_FIELD
Definition: udatpg.h:61
UDATPG_MINUTE_FIELD
@ UDATPG_MINUTE_FIELD
Definition: udatpg.h:85
uenum.h
C API: String Enumeration.
UEnumeration
struct UEnumeration UEnumeration
structure representing an enumeration object instance
Definition: uenum.h:44
UBool
int8_t UBool
The ICU boolean type, a signed-byte integer.
Definition: umachine.h:247
U_CAPI
#define U_CAPI
This is used to declare a function as a public ICU C API.
Definition: umachine.h:110
UChar
char16_t UChar
The base type for UTF-16 code units and pointers.
Definition: umachine.h:386
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415