| OLD | NEW | 
|---|
| 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  Loading... | 
| 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  Loading... | 
| 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  Loading... | 
| 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  Loading... | 
| 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  Loading... | 
| 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  Loading... | 
| 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  Loading... | 
| 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 | 
| OLD | NEW | 
|---|