Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(190)

Side by Side Diff: source/i18n/unicode/udat.h

Issue 1621843002: ICU 56 update step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@561
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/i18n/unicode/ucurr.h ('k') | source/i18n/unicode/udateintervalformat.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 ******************************************************************************* 2 *******************************************************************************
3 * Copyright (C) 1996-2014, International Business Machines 3 * Copyright (C) 1996-2015, International Business Machines
4 * Corporation and others. All Rights Reserved. 4 * Corporation and others. All Rights Reserved.
5 ******************************************************************************* 5 *******************************************************************************
6 */ 6 */
7 7
8 #ifndef UDAT_H 8 #ifndef UDAT_H
9 #define UDAT_H 9 #define UDAT_H
10 10
11 #include "unicode/utypes.h" 11 #include "unicode/utypes.h"
12 12
13 #if !UCONFIG_NO_FORMATTING 13 #if !UCONFIG_NO_FORMATTING
14 14
15 #include "unicode/localpointer.h" 15 #include "unicode/localpointer.h"
16 #include "unicode/ucal.h" 16 #include "unicode/ucal.h"
17 #include "unicode/unum.h" 17 #include "unicode/unum.h"
18 #include "unicode/udisplaycontext.h" 18 #include "unicode/udisplaycontext.h"
19 #include "unicode/ufieldpositer.h"
19 /** 20 /**
20 * \file 21 * \file
21 * \brief C API: DateFormat 22 * \brief C API: DateFormat
22 * 23 *
23 * <h2> Date Format C API</h2> 24 * <h2> Date Format C API</h2>
24 * 25 *
25 * Date Format C API consists of functions that convert dates and 26 * Date Format C API consists of functions that convert dates and
26 * times from their internal representations to textual form and back again in a 27 * times from their internal representations to textual form and back again in a
27 * language-independent manner. Converting from the internal representation (mil liseconds 28 * language-independent manner. Converting from the internal representation (mil liseconds
28 * since midnight, January 1, 1970) to text is known as "formatting," and conver ting 29 * since midnight, January 1, 1970) to text is known as "formatting," and conver ting
(...skipping 724 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 754
754 #ifndef U_HIDE_INTERNAL_API 755 #ifndef U_HIDE_INTERNAL_API
755 /** 756 /**
756 * FieldPosition and UFieldPosition selector for 'r' field alignment, 757 * FieldPosition and UFieldPosition selector for 'r' field alignment,
757 * no directly corresponding UCAL_ field. 758 * no directly corresponding UCAL_ field.
758 * @internal ICU 53 759 * @internal ICU 53
759 */ 760 */
760 UDAT_RELATED_YEAR_FIELD = 34, 761 UDAT_RELATED_YEAR_FIELD = 34,
761 #endif /* U_HIDE_INTERNAL_API */ 762 #endif /* U_HIDE_INTERNAL_API */
762 763
764 #ifndef U_HIDE_DRAFT_API
765 /**
766 * FieldPosition and UFieldPosition selector for time separator,
767 * no corresponding UCAL_ field. No pattern character is currently
768 * defined for this.
769 * @draft ICU 55
770 */
771 UDAT_TIME_SEPARATOR_FIELD = 35,
772 #endif /* U_HIDE_DRAFT_API */
773
763 /** 774 /**
764 * Number of FieldPosition and UFieldPosition selectors for 775 * Number of FieldPosition and UFieldPosition selectors for
765 * DateFormat and UDateFormat. 776 * DateFormat and UDateFormat.
766 * Valid selectors range from 0 to UDAT_FIELD_COUNT-1. 777 * Valid selectors range from 0 to UDAT_FIELD_COUNT-1.
767 * This value is subject to change if new fields are defined 778 * This value is subject to change if new fields are defined
768 * in the future. 779 * in the future.
769 * @stable ICU 3.0 780 * @stable ICU 3.0
770 */ 781 */
771 UDAT_FIELD_COUNT = 35 782 UDAT_FIELD_COUNT = 36
772 783
773 } UDateFormatField; 784 } UDateFormatField;
774 785
775 786
787 #ifndef U_HIDE_INTERNAL_API
788 /**
789 * Is a pattern character defined for UDAT_TIME_SEPARATOR_FIELD?
790 * In ICU 55 it was COLON, but that was withdrawn in ICU 56.
791 * @internal ICU 56
792 */
793 #define UDAT_HAS_PATTERN_CHAR_FOR_TIME_SEPARATOR 0
794 #endif /* U_HIDE_INTERNAL_API */
795
796
776 /** 797 /**
777 * Maps from a UDateFormatField to the corresponding UCalendarDateFields. 798 * Maps from a UDateFormatField to the corresponding UCalendarDateFields.
778 * Note: since the mapping is many-to-one, there is no inverse mapping. 799 * Note: since the mapping is many-to-one, there is no inverse mapping.
779 * @param field the UDateFormatField. 800 * @param field the UDateFormatField.
780 * @return the UCalendarDateField. This will be UCAL_FIELD_COUNT in case 801 * @return the UCalendarDateField. This will be UCAL_FIELD_COUNT in case
781 * of error (e.g., the input field is UDAT_FIELD_COUNT). 802 * of error (e.g., the input field is UDAT_FIELD_COUNT).
782 * @stable ICU 4.4 803 * @stable ICU 4.4
783 */ 804 */
784 U_STABLE UCalendarDateFields U_EXPORT2 805 U_STABLE UCalendarDateFields U_EXPORT2
785 udat_toCalendarDateField(UDateFormatField field); 806 udat_toCalendarDateField(UDateFormatField field);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 /** 848 /**
828 * Close a UDateFormat. 849 * Close a UDateFormat.
829 * Once closed, a UDateFormat may no longer be used. 850 * Once closed, a UDateFormat may no longer be used.
830 * @param format The formatter to close. 851 * @param format The formatter to close.
831 * @stable ICU 2.0 852 * @stable ICU 2.0
832 */ 853 */
833 U_STABLE void U_EXPORT2 854 U_STABLE void U_EXPORT2
834 udat_close(UDateFormat* format); 855 udat_close(UDateFormat* format);
835 856
836 857
837 /* Dont hide UDateFormatBooleanAttribute type with #ifndef U_HIDE_DRAFT_API, nee ded by virtual methods */
838 /* Also don't hide UDAT_BOOLEAN_ATTRIBUTE_COUNT, needed by template class EnumSe t<UDateFormatBooleanAttribute,...> */
839 /** 858 /**
840 * DateFormat boolean attributes 859 * DateFormat boolean attributes
841 * 860 *
842 * @draft ICU 53 861 * @stable ICU 53
843 */ 862 */
844 typedef enum UDateFormatBooleanAttribute { 863 typedef enum UDateFormatBooleanAttribute {
845 #ifndef U_HIDE_DRAFT_API
846 /** 864 /**
847 * indicates whether whitespace is allowed. Includes trailing dot tolerance. 865 * indicates whether whitespace is allowed. Includes trailing dot tolerance.
848 * @draft ICU 53 866 * @stable ICU 53
849 */ 867 */
850 UDAT_PARSE_ALLOW_WHITESPACE = 0, 868 UDAT_PARSE_ALLOW_WHITESPACE = 0,
851 /** 869 /**
852 * indicates tolerance of numeric data when String data may be assumed. eg: UDAT_YEAR_NAME_FIELD, 870 * indicates tolerance of numeric data when String data may be assumed. eg: UDAT_YEAR_NAME_FIELD,
853 * UDAT_STANDALONE_MONTH_FIELD, UDAT_DAY_OF_WEEK_FIELD 871 * UDAT_STANDALONE_MONTH_FIELD, UDAT_DAY_OF_WEEK_FIELD
854 * @draft ICU 53 872 * @stable ICU 53
855 */ 873 */
856 UDAT_PARSE_ALLOW_NUMERIC = 1, 874 UDAT_PARSE_ALLOW_NUMERIC = 1,
875 #ifndef U_HIDE_DRAFT_API
857 /** 876 /**
858 * indicates tolerance of a partial literal match 877 * indicates tolerance of a partial literal match
859 * @draft ICU 53 878 * e.g. accepting "--mon-02-march-2011" for a pattern of "'--: 'EEE-WW-MMMM- yyyy"
879 * @draft ICU 56
860 */ 880 */
861 UDAT_PARSE_PARTIAL_MATCH = 2, 881 UDAT_PARSE_PARTIAL_LITERAL_MATCH = 2,
862 /** 882 /**
863 * indicates tolerance of pattern mismatch between input data and specified format pattern. 883 * indicates tolerance of pattern mismatch between input data and specified format pattern.
864 * e.g. accepting "September" for a month pattern of MMM ("Sep") 884 * e.g. accepting "September" for a month pattern of MMM ("Sep")
865 * @draft ICU 53 885 * @draft ICU 56
866 */ 886 */
867 UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH = 3, 887 UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH = 3,
868 #endif /* U_HIDE_DRAFT_API */ 888 #endif /* U_HIDE_DRAFT_API */
869 /** 889 /**
870 * count boolean date format constants 890 * count boolean date format constants
871 * @draft ICU 53 891 * @stable ICU 53
872 */ 892 */
873 UDAT_BOOLEAN_ATTRIBUTE_COUNT = 4 893 UDAT_BOOLEAN_ATTRIBUTE_COUNT = 4
874 } UDateFormatBooleanAttribute; 894 } UDateFormatBooleanAttribute;
875 895
876 #ifndef U_HIDE_DRAFT_API
877 /** 896 /**
878 * Get a boolean attribute associated with a UDateFormat. 897 * Get a boolean attribute associated with a UDateFormat.
879 * An example would be a true value for a key of UDAT_PARSE_ALLOW_WHITESPACE ind icating allowing whitespace leniency. 898 * An example would be a true value for a key of UDAT_PARSE_ALLOW_WHITESPACE ind icating allowing whitespace leniency.
880 * If the formatter does not understand the attribute, -1 is returned. 899 * If the formatter does not understand the attribute, -1 is returned.
881 * @param fmt The formatter to query. 900 * @param fmt The formatter to query.
882 * @param attr The attribute to query; e.g. UDAT_PARSE_ALLOW_WHITESPACE. 901 * @param attr The attribute to query; e.g. UDAT_PARSE_ALLOW_WHITESPACE.
883 * @param status A pointer to an UErrorCode to receive any errors 902 * @param status A pointer to an UErrorCode to receive any errors
884 * @return The value of attr. 903 * @return The value of attr.
885 * @draft ICU 53 904 * @stable ICU 53
886 */ 905 */
887 U_DRAFT UBool U_EXPORT2 906 U_STABLE UBool U_EXPORT2
888 udat_getBooleanAttribute(const UDateFormat* fmt, UDateFormatBooleanAttribute att r, UErrorCode* status); 907 udat_getBooleanAttribute(const UDateFormat* fmt, UDateFormatBooleanAttribute att r, UErrorCode* status);
889 908
890 /** 909 /**
891 * Set a boolean attribute associated with a UDateFormat. 910 * Set a boolean attribute associated with a UDateFormat.
892 * An example of a boolean attribute is parse leniency control. If the formatte r does not understand 911 * An example of a boolean attribute is parse leniency control. If the formatte r does not understand
893 * the attribute, the call is ignored. 912 * the attribute, the call is ignored.
894 * @param fmt The formatter to set. 913 * @param fmt The formatter to set.
895 * @param attr The attribute to set; one of UDAT_PARSE_ALLOW_WHITESPACE or UDAT_ PARSE_ALLOW_NUMERIC 914 * @param attr The attribute to set; one of UDAT_PARSE_ALLOW_WHITESPACE or UDAT_ PARSE_ALLOW_NUMERIC
896 * @param newValue The new value of attr. 915 * @param newValue The new value of attr.
897 * @param status A pointer to an UErrorCode to receive any errors 916 * @param status A pointer to an UErrorCode to receive any errors
898 * @draft ICU 53 917 * @stable ICU 53
899 */ 918 */
900 U_DRAFT void U_EXPORT2 919 U_STABLE void U_EXPORT2
901 udat_setBooleanAttribute(UDateFormat *fmt, UDateFormatBooleanAttribute attr, UBo ol newValue, UErrorCode* status); 920 udat_setBooleanAttribute(UDateFormat *fmt, UDateFormatBooleanAttribute attr, UBo ol newValue, UErrorCode* status);
902 921
903 #endif /* U_HIDE_DRAFT_API */
904
905 922
906 923
907 #if U_SHOW_CPLUSPLUS_API 924 #if U_SHOW_CPLUSPLUS_API
908 925
909 U_NAMESPACE_BEGIN 926 U_NAMESPACE_BEGIN
910 927
911 /** 928 /**
912 * \class LocalUDateFormatPointer 929 * \class LocalUDateFormatPointer
913 * "Smart pointer" class, closes a UDateFormat via udat_close(). 930 * "Smart pointer" class, closes a UDateFormat via udat_close().
914 * For most methods see the LocalPointerBase base class. 931 * For most methods see the LocalPointerBase base class.
(...skipping 14 matching lines...) Expand all
929 * @param fmt The format to copy 946 * @param fmt The format to copy
930 * @param status A pointer to an UErrorCode to receive any errors. 947 * @param status A pointer to an UErrorCode to receive any errors.
931 * @return A pointer to a UDateFormat identical to fmt. 948 * @return A pointer to a UDateFormat identical to fmt.
932 * @stable ICU 2.0 949 * @stable ICU 2.0
933 */ 950 */
934 U_STABLE UDateFormat* U_EXPORT2 951 U_STABLE UDateFormat* U_EXPORT2
935 udat_clone(const UDateFormat *fmt, 952 udat_clone(const UDateFormat *fmt,
936 UErrorCode *status); 953 UErrorCode *status);
937 954
938 /** 955 /**
939 * Format a date using an UDateFormat. 956 * Format a date using a UDateFormat.
940 * The date will be formatted using the conventions specified in {@link #udat_ope n } 957 * The date will be formatted using the conventions specified in {@link #udat_ope n }
941 * @param format The formatter to use 958 * @param format The formatter to use
942 * @param dateToFormat The date to format 959 * @param dateToFormat The date to format
943 * @param result A pointer to a buffer to receive the formatted number. 960 * @param result A pointer to a buffer to receive the formatted number.
944 * @param resultLength The maximum size of result. 961 * @param resultLength The maximum size of result.
945 * @param position A pointer to a UFieldPosition. On input, position->field 962 * @param position A pointer to a UFieldPosition. On input, position->field
946 * is read. On output, position->beginIndex and position->endIndex indicate 963 * is read. On output, position->beginIndex and position->endIndex indicate
947 * the beginning and ending indices of field number position->field, if such 964 * the beginning and ending indices of field number position->field, if such
948 * a field exists. This parameter may be NULL, in which case no field 965 * a field exists. This parameter may be NULL, in which case no field
949 * position data is returned. 966 * position data is returned.
950 * @param status A pointer to an UErrorCode to receive any errors 967 * @param status A pointer to an UErrorCode to receive any errors
951 * @return The total buffer size needed; if greater than resultLength, the output was truncated. 968 * @return The total buffer size needed; if greater than resultLength, the output was truncated.
952 * @see udat_parse 969 * @see udat_parse
953 * @see UFieldPosition 970 * @see UFieldPosition
954 * @stable ICU 2.0 971 * @stable ICU 2.0
955 */ 972 */
956 U_STABLE int32_t U_EXPORT2 973 U_STABLE int32_t U_EXPORT2
957 udat_format( const UDateFormat* format, 974 udat_format( const UDateFormat* format,
958 UDate dateToFormat, 975 UDate dateToFormat,
959 UChar* result, 976 UChar* result,
960 int32_t resultLength, 977 int32_t resultLength,
961 UFieldPosition* position, 978 UFieldPosition* position,
962 UErrorCode* status); 979 UErrorCode* status);
963 980
981 #ifndef U_HIDE_DRAFT_API
982 /**
983 * Format a date using an UDateFormat.
984 * The date will be formatted using the conventions specified in {@link #udat_ope n }
985 * @param format The formatter to use
986 * @param calendar The calendar to format. The calendar instance might be
987 * mutated if fields are not yet fully calculated, though
988 * the function won't change the logical date and time held
989 * by the instance.
990 * @param result A pointer to a buffer to receive the formatted number.
991 * @param capacity The maximum size of result.
992 * @param position A pointer to a UFieldPosition. On input, position->field
993 * is read. On output, position->beginIndex and position->endIndex indicate
994 * the beginning and ending indices of field number position->field, if such
995 * a field exists. This parameter may be NULL, in which case no field
996 * position data is returned.
997 * @param status A pointer to an UErrorCode to receive any errors
998 * @return The total buffer size needed; if greater than resultLength, the output was truncated.
999 * @see udat_format
1000 * @see udat_parseCalendar
1001 * @see UFieldPosition
1002 * @draft ICU 55
1003 */
1004 U_DRAFT int32_t U_EXPORT2
1005 udat_formatCalendar( const UDateFormat* format,
1006 UCalendar* calendar,
1007 UChar* result,
1008 int32_t capacity,
1009 UFieldPosition* position,
1010 UErrorCode* status);
1011
964 /** 1012 /**
1013 * Format a date using a UDateFormat.
1014 * The date will be formatted using the conventions specified in {@link #udat_ope n}
1015 * @param format
1016 * The formatter to use
1017 * @param dateToFormat
1018 * The date to format
1019 * @param result
1020 * A pointer to a buffer to receive the formatted number.
1021 * @param resultLength
1022 * The maximum size of result.
1023 * @param fpositer
1024 * A pointer to a UFieldPositionIterator created by {@link #ufieldposite r_open}
1025 * (may be NULL if field position information is not needed). Any
1026 * iteration information already present in the UFieldPositionIterator
1027 * will be deleted, and the iterator will be reset to apply to the
1028 * fields in the formatted string created by this function call; the
1029 * field values provided by {@link #ufieldpositer_next} will be from the
1030 * UDateFormatField enum.
1031 * @param status
1032 * A pointer to a UErrorCode to receive any errors
1033 * @return
1034 * The total buffer size needed; if greater than resultLength, the outpu t was truncated.
1035 * @see udat_parse
1036 * @see UFieldPositionIterator
1037 * @draft ICU 55
1038 */
1039 U_DRAFT int32_t U_EXPORT2
1040 udat_formatForFields( const UDateFormat* format,
1041 UDate dateToFormat,
1042 UChar* result,
1043 int32_t resultLength,
1044 UFieldPositionIterator* fpositer,
1045 UErrorCode* status);
1046
1047 /**
1048 * Format a date using a UDateFormat.
1049 * The date will be formatted using the conventions specified in {@link #udat_ope n }
1050 * @param format
1051 * The formatter to use
1052 * @param calendar
1053 * The calendar to format. The calendar instance might be mutated if fie lds
1054 * are not yet fully calculated, though the function won't change the lo gical
1055 * date and time held by the instance.
1056 * @param result
1057 * A pointer to a buffer to receive the formatted number.
1058 * @param capacity
1059 * The maximum size of result.
1060 * @param fpositer
1061 * A pointer to a UFieldPositionIterator created by {@link #ufieldposite r_open}
1062 * (may be NULL if field position information is not needed). Any
1063 * iteration information already present in the UFieldPositionIterator
1064 * will be deleted, and the iterator will be reset to apply to the
1065 * fields in the formatted string created by this function call; the
1066 * field values provided by {@link #ufieldpositer_next} will be from the
1067 * UDateFormatField enum.
1068 * @param status
1069 * A pointer to a UErrorCode to receive any errors
1070 * @return
1071 * The total buffer size needed; if greater than resultLength, the outpu t was truncated.
1072 * @see udat_format
1073 * @see udat_parseCalendar
1074 * @see UFieldPositionIterator
1075 * @draft ICU 55
1076 */
1077 U_DRAFT int32_t U_EXPORT2
1078 udat_formatCalendarForFields( const UDateFormat* format,
1079 UCalendar* calendar,
1080 UChar* result,
1081 int32_t capacity,
1082 UFieldPositionIterator* fpositer,
1083 UErrorCode* status);
1084
1085 #endif /* U_HIDE_DRAFT_API */
1086
1087 /**
965 * Parse a string into an date/time using a UDateFormat. 1088 * Parse a string into an date/time using a UDateFormat.
966 * The date will be parsed using the conventions specified in {@link #udat_open } . 1089 * The date will be parsed using the conventions specified in {@link #udat_open } .
967 * <P> 1090 * <P>
968 * Note that the normal date formats associated with some calendars - such 1091 * Note that the normal date formats associated with some calendars - such
969 * as the Chinese lunar calendar - do not specify enough fields to enable 1092 * as the Chinese lunar calendar - do not specify enough fields to enable
970 * dates to be parsed unambiguously. In the case of the Chinese lunar 1093 * dates to be parsed unambiguously. In the case of the Chinese lunar
971 * calendar, while the year within the current 60-year cycle is specified, 1094 * calendar, while the year within the current 60-year cycle is specified,
972 * the number of such cycles since the start date of the calendar (in the 1095 * the number of such cycles since the start date of the calendar (in the
973 * UCAL_ERA field of the UCalendar object) is not normally part of the format, 1096 * UCAL_ERA field of the UCalendar object) is not normally part of the format,
974 * and parsing may assume the wrong era. For cases such as this it is 1097 * and parsing may assume the wrong era. For cases such as this it is
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
1077 * A UDateFormat uses a UNumberFormat to format numbers within a date, 1200 * A UDateFormat uses a UNumberFormat to format numbers within a date,
1078 * for example the day number. 1201 * for example the day number.
1079 * @param fmt The formatter to query. 1202 * @param fmt The formatter to query.
1080 * @return A pointer to the UNumberFormat used by fmt to format numbers. 1203 * @return A pointer to the UNumberFormat used by fmt to format numbers.
1081 * @see udat_setNumberFormat 1204 * @see udat_setNumberFormat
1082 * @stable ICU 2.0 1205 * @stable ICU 2.0
1083 */ 1206 */
1084 U_STABLE const UNumberFormat* U_EXPORT2 1207 U_STABLE const UNumberFormat* U_EXPORT2
1085 udat_getNumberFormat(const UDateFormat* fmt); 1208 udat_getNumberFormat(const UDateFormat* fmt);
1086 1209
1087 #ifndef U_HIDE_DRAFT_API
1088 /** 1210 /**
1089 * Get the UNumberFormat for specific field associated with an UDateFormat. 1211 * Get the UNumberFormat for specific field associated with an UDateFormat.
1090 * For example: 'y' for year and 'M' for month 1212 * For example: 'y' for year and 'M' for month
1091 * @param fmt The formatter to query. 1213 * @param fmt The formatter to query.
1092 * @param field the field to query 1214 * @param field the field to query
1093 * @return A pointer to the UNumberFormat used by fmt to format field numbers. 1215 * @return A pointer to the UNumberFormat used by fmt to format field numbers.
1094 * @see udat_setNumberFormatForField 1216 * @see udat_setNumberFormatForField
1095 * @draft ICU 54 1217 * @stable ICU 54
1096 */ 1218 */
1097 U_DRAFT const UNumberFormat* U_EXPORT2 1219 U_STABLE const UNumberFormat* U_EXPORT2
1098 udat_getNumberFormatForField(const UDateFormat* fmt, UChar field); 1220 udat_getNumberFormatForField(const UDateFormat* fmt, UChar field);
1099 1221
1100 /** 1222 /**
1101 * Set the UNumberFormat for specific field associated with an UDateFormat. 1223 * Set the UNumberFormat for specific field associated with an UDateFormat.
1102 * It can be a single field like: "y"(year) or "M"(month) 1224 * It can be a single field like: "y"(year) or "M"(month)
1103 * It can be several field combined together: "yM"(year and month) 1225 * It can be several field combined together: "yM"(year and month)
1104 * Note: 1226 * Note:
1105 * 1 symbol field is enough for multiple symbol field (so "y" will override "yy", "yyy") 1227 * 1 symbol field is enough for multiple symbol field (so "y" will override "yy", "yyy")
1106 * If the field is not numeric, then override has no effect (like "MMM" will use abbreviation, not numerical field) 1228 * If the field is not numeric, then override has no effect (like "MMM" will use abbreviation, not numerical field)
1107 * 1229 *
1108 * @param fields the fields to set 1230 * @param fields the fields to set
1109 * @param fmt The formatter to set. 1231 * @param fmt The formatter to set.
1110 * @param numberFormatToSet A pointer to the UNumberFormat to be used by fmt to f ormat numbers. 1232 * @param numberFormatToSet A pointer to the UNumberFormat to be used by fmt to f ormat numbers.
1111 * @param status error code passed around (memory allocation or invalid fields) 1233 * @param status error code passed around (memory allocation or invalid fields)
1112 * @see udat_getNumberFormatForField 1234 * @see udat_getNumberFormatForField
1113 * @draft ICU 54 1235 * @stable ICU 54
1114 */ 1236 */
1115 U_DRAFT void U_EXPORT2 1237 U_STABLE void U_EXPORT2
1116 udat_adoptNumberFormatForFields( UDateFormat* fmt, 1238 udat_adoptNumberFormatForFields( UDateFormat* fmt,
1117 const UChar* fields, 1239 const UChar* fields,
1118 UNumberFormat* numberFormatToSet, 1240 UNumberFormat* numberFormatToSet,
1119 UErrorCode* status); 1241 UErrorCode* status);
1120 #endif /* U_HIDE_DRAFT_API */
1121
1122 /** 1242 /**
1123 * Set the UNumberFormat associated with an UDateFormat. 1243 * Set the UNumberFormat associated with an UDateFormat.
1124 * A UDateFormat uses a UNumberFormat to format numbers within a date, 1244 * A UDateFormat uses a UNumberFormat to format numbers within a date,
1125 * for example the day number. 1245 * for example the day number.
1126 * This method also clears per field NumberFormat instances previously 1246 * This method also clears per field NumberFormat instances previously
1127 * set by {@see udat_setNumberFormatForField} 1247 * set by {@see udat_setNumberFormatForField}
1128 * @param fmt The formatter to set. 1248 * @param fmt The formatter to set.
1129 * @param numberFormatToSet A pointer to the UNumberFormat to be used by fmt to f ormat numbers. 1249 * @param numberFormatToSet A pointer to the UNumberFormat to be used by fmt to f ormat numbers.
1130 * @see udat_getNumberFormat 1250 * @see udat_getNumberFormat
1131 * @see udat_setNumberFormatForField 1251 * @see udat_setNumberFormatForField
1132 * @stable ICU 2.0 1252 * @stable ICU 2.0
1133 */ 1253 */
1134 U_STABLE void U_EXPORT2 1254 U_STABLE void U_EXPORT2
1135 udat_setNumberFormat( UDateFormat* fmt, 1255 udat_setNumberFormat( UDateFormat* fmt,
1136 const UNumberFormat* numberFormatToSet); 1256 const UNumberFormat* numberFormatToSet);
1137
1138 #ifndef U_HIDE_DRAFT_API
1139 /** 1257 /**
1140 * Adopt the UNumberFormat associated with an UDateFormat. 1258 * Adopt the UNumberFormat associated with an UDateFormat.
1141 * A UDateFormat uses a UNumberFormat to format numbers within a date, 1259 * A UDateFormat uses a UNumberFormat to format numbers within a date,
1142 * for example the day number. 1260 * for example the day number.
1143 * @param fmt The formatter to set. 1261 * @param fmt The formatter to set.
1144 * @param numberFormatToAdopt A pointer to the UNumberFormat to be used by fmt to format numbers. 1262 * @param numberFormatToAdopt A pointer to the UNumberFormat to be used by fmt to format numbers.
1145 * @see udat_getNumberFormat 1263 * @see udat_getNumberFormat
1146 * @draft ICU 54 1264 * @stable ICU 54
1147 */ 1265 */
1148 U_DRAFT void U_EXPORT2 1266 U_STABLE void U_EXPORT2
1149 udat_adoptNumberFormat( UDateFormat* fmt, 1267 udat_adoptNumberFormat( UDateFormat* fmt,
1150 UNumberFormat* numberFormatToAdopt); 1268 UNumberFormat* numberFormatToAdopt);
1151 #endif /* U_HIDE_DRAFT_API */
1152
1153 /** 1269 /**
1154 * Get a locale for which date/time formatting patterns are available. 1270 * Get a locale for which date/time formatting patterns are available.
1155 * A UDateFormat in a locale returned by this function will perform the correct 1271 * A UDateFormat in a locale returned by this function will perform the correct
1156 * formatting and parsing for the locale. 1272 * formatting and parsing for the locale.
1157 * @param localeIndex The index of the desired locale. 1273 * @param localeIndex The index of the desired locale.
1158 * @return A locale for which date/time formatting patterns are available, or 0 i f none. 1274 * @return A locale for which date/time formatting patterns are available, or 0 i f none.
1159 * @see udat_countAvailable 1275 * @see udat_countAvailable
1160 * @stable ICU 2.0 1276 * @stable ICU 2.0
1161 */ 1277 */
1162 U_STABLE const char* U_EXPORT2 1278 U_STABLE const char* U_EXPORT2
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
1290 * These are named "SHORTER" to contrast with the constants using _SHORT_ 1406 * These are named "SHORTER" to contrast with the constants using _SHORT_
1291 * above, which actually get the CLDR-style *abbreviated* versions of the 1407 * above, which actually get the CLDR-style *abbreviated* versions of the
1292 * corresponding names. 1408 * corresponding names.
1293 * @stable ICU 51 1409 * @stable ICU 51
1294 */ 1410 */
1295 UDAT_SHORTER_WEEKDAYS, 1411 UDAT_SHORTER_WEEKDAYS,
1296 /** 1412 /**
1297 * Standalone version of UDAT_SHORTER_WEEKDAYS. 1413 * Standalone version of UDAT_SHORTER_WEEKDAYS.
1298 * @stable ICU 51 1414 * @stable ICU 51
1299 */ 1415 */
1300 UDAT_STANDALONE_SHORTER_WEEKDAYS 1416 UDAT_STANDALONE_SHORTER_WEEKDAYS,
1301 #ifndef U_HIDE_DRAFT_API 1417 /**
1302 , 1418 * Cyclic year names (only supported for some calendars, and only for FORMAT usage;
1303 » /** 1419 * udat_setSymbols not supported for UDAT_CYCLIC_YEARS_WIDE)
1304 » * Cyclic year names (only supported for some calendars, and only for FO RMAT usage; 1420 * @stable ICU 54
1305 » * udat_setSymbols not supported for UDAT_CYCLIC_YEARS_WIDE) 1421 */
1306 » * @draft ICU 54 1422 UDAT_CYCLIC_YEARS_WIDE,
1307 » */ 1423 /**
1308 » UDAT_CYCLIC_YEARS_WIDE, 1424 * Cyclic year names (only supported for some calendars, and only for FORMAT usage)
1309 » /** 1425 * @stable ICU 54
1310 » * Cyclic year names (only supported for some calendars, and only for FO RMAT usage) 1426 */
1311 » * @draft ICU 54 1427 UDAT_CYCLIC_YEARS_ABBREVIATED,
1312 » */ 1428 /**
1313 » UDAT_CYCLIC_YEARS_ABBREVIATED, 1429 * Cyclic year names (only supported for some calendars, and only for FORMAT usage;
1314 » /** 1430 * udat_setSymbols not supported for UDAT_CYCLIC_YEARS_NARROW)
1315 » * Cyclic year names (only supported for some calendars, and only for FO RMAT usage; 1431 * @stable ICU 54
1316 » * udat_setSymbols not supported for UDAT_CYCLIC_YEARS_NARROW) 1432 */
1317 » * @draft ICU 54 1433 UDAT_CYCLIC_YEARS_NARROW,
1318 » */ 1434 /**
1319 » UDAT_CYCLIC_YEARS_NARROW, 1435 * Calendar zodiac names (only supported for some calendars, and only for F ORMAT usage;
1320 » /** 1436 * udat_setSymbols not supported for UDAT_ZODIAC_NAMES_WIDE)
1321 » * Calendar zodiac names (only supported for some calendars, and only f or FORMAT usage; 1437 * @stable ICU 54
1322 » * udat_setSymbols not supported for UDAT_ZODIAC_NAMES_WIDE) 1438 */
1323 » * @draft ICU 54 1439 UDAT_ZODIAC_NAMES_WIDE,
1324 » */ 1440 /**
1325 » UDAT_ZODIAC_NAMES_WIDE, 1441 * Calendar zodiac names (only supported for some calendars, and only for F ORMAT usage)
1326 » /** 1442 * @stable ICU 54
1327 » * Calendar zodiac names (only supported for some calendars, and only f or FORMAT usage) 1443 */
1328 » * @draft ICU 54 1444 UDAT_ZODIAC_NAMES_ABBREVIATED,
1329 » */ 1445 /**
1330 » UDAT_ZODIAC_NAMES_ABBREVIATED, 1446 * Calendar zodiac names (only supported for some calendars, and only for F ORMAT usage;
1331 » /** 1447 * udat_setSymbols not supported for UDAT_ZODIAC_NAMES_NARROW)
1332 » * Calendar zodiac names (only supported for some calendars, and only f or FORMAT usage; 1448 * @stable ICU 54
1333 » * udat_setSymbols not supported for UDAT_ZODIAC_NAMES_NARROW) 1449 */
1334 » * @draft ICU 54 1450 UDAT_ZODIAC_NAMES_NARROW
1335 » */
1336 » UDAT_ZODIAC_NAMES_NARROW
1337 #endif /* U_HIDE_DRAFT_API */
1338 } UDateFormatSymbolType; 1451 } UDateFormatSymbolType;
1339 1452
1340 struct UDateFormatSymbols; 1453 struct UDateFormatSymbols;
1341 /** Date format symbols. 1454 /** Date format symbols.
1342 * For usage in C programs. 1455 * For usage in C programs.
1343 * @stable ICU 2.6 1456 * @stable ICU 2.6
1344 */ 1457 */
1345 typedef struct UDateFormatSymbols UDateFormatSymbols; 1458 typedef struct UDateFormatSymbols UDateFormatSymbols;
1346 1459
1347 /** 1460 /**
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
1425 * Set a particular UDisplayContext value in the formatter, such as 1538 * Set a particular UDisplayContext value in the formatter, such as
1426 * UDISPCTX_CAPITALIZATION_FOR_STANDALONE. 1539 * UDISPCTX_CAPITALIZATION_FOR_STANDALONE.
1427 * @param fmt The formatter for which to set a UDisplayContext value. 1540 * @param fmt The formatter for which to set a UDisplayContext value.
1428 * @param value The UDisplayContext value to set. 1541 * @param value The UDisplayContext value to set.
1429 * @param status A pointer to an UErrorCode to receive any errors 1542 * @param status A pointer to an UErrorCode to receive any errors
1430 * @stable ICU 51 1543 * @stable ICU 51
1431 */ 1544 */
1432 U_DRAFT void U_EXPORT2 1545 U_DRAFT void U_EXPORT2
1433 udat_setContext(UDateFormat* fmt, UDisplayContext value, UErrorCode* status); 1546 udat_setContext(UDateFormat* fmt, UDisplayContext value, UErrorCode* status);
1434 1547
1435 #ifndef U_HIDE_DRAFT_API
1436 /** 1548 /**
1437 * Get the formatter's UDisplayContext value for the specified UDisplayContextTy pe, 1549 * Get the formatter's UDisplayContext value for the specified UDisplayContextTy pe,
1438 * such as UDISPCTX_TYPE_CAPITALIZATION. 1550 * such as UDISPCTX_TYPE_CAPITALIZATION.
1439 * @param fmt The formatter to query. 1551 * @param fmt The formatter to query.
1440 * @param type The UDisplayContextType whose value to return 1552 * @param type The UDisplayContextType whose value to return
1441 * @param status A pointer to an UErrorCode to receive any errors 1553 * @param status A pointer to an UErrorCode to receive any errors
1442 * @return The UDisplayContextValue for the specified type. 1554 * @return The UDisplayContextValue for the specified type.
1443 * @draft ICU 53 1555 * @stable ICU 53
1444 */ 1556 */
1445 U_DRAFT UDisplayContext U_EXPORT2 1557 U_STABLE UDisplayContext U_EXPORT2
1446 udat_getContext(const UDateFormat* fmt, UDisplayContextType type, UErrorCode* st atus); 1558 udat_getContext(const UDateFormat* fmt, UDisplayContextType type, UErrorCode* st atus);
1447 1559
1448 #endif /* U_HIDE_DRAFT_API */
1449
1450 #ifndef U_HIDE_INTERNAL_API 1560 #ifndef U_HIDE_INTERNAL_API
1451 /** 1561 /**
1452 * Extract the date pattern from a UDateFormat set for relative date formatting. 1562 * Extract the date pattern from a UDateFormat set for relative date formatting.
1453 * The pattern will follow the pattern syntax rules. 1563 * The pattern will follow the pattern syntax rules.
1454 * @param fmt The formatter to query. 1564 * @param fmt The formatter to query.
1455 * @param result A pointer to a buffer to receive the pattern. 1565 * @param result A pointer to a buffer to receive the pattern.
1456 * @param resultLength The maximum size of result. 1566 * @param resultLength The maximum size of result.
1457 * @param status A pointer to a UErrorCode to receive any errors 1567 * @param status A pointer to a UErrorCode to receive any errors
1458 * @return The total buffer size needed; if greater than resultLength, the output was truncated. 1568 * @return The total buffer size needed; if greater than resultLength, the output was truncated.
1459 * @see udat_applyPatternRelative 1569 * @see udat_applyPatternRelative
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1527 * @internal ICU 49 1637 * @internal ICU 49
1528 */ 1638 */
1529 U_INTERNAL UDateFormatOpener U_EXPORT2 1639 U_INTERNAL UDateFormatOpener U_EXPORT2
1530 udat_unregisterOpener(UDateFormatOpener opener, UErrorCode *status); 1640 udat_unregisterOpener(UDateFormatOpener opener, UErrorCode *status);
1531 #endif /* U_HIDE_INTERNAL_API */ 1641 #endif /* U_HIDE_INTERNAL_API */
1532 1642
1533 1643
1534 #endif /* #if !UCONFIG_NO_FORMATTING */ 1644 #endif /* #if !UCONFIG_NO_FORMATTING */
1535 1645
1536 #endif 1646 #endif
OLDNEW
« no previous file with comments | « source/i18n/unicode/ucurr.h ('k') | source/i18n/unicode/udateintervalformat.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698