ICU 66.1  66.1
udat.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4  *******************************************************************************
5  * Copyright (C) 1996-2016, International Business Machines
6  * Corporation and others. All Rights Reserved.
7  *******************************************************************************
8 */
9 
10 #ifndef UDAT_H
11 #define UDAT_H
12 
13 #include "unicode/utypes.h"
14 
15 #if !UCONFIG_NO_FORMATTING
16 
17 #include "unicode/localpointer.h"
18 #include "unicode/ucal.h"
19 #include "unicode/unum.h"
21 #include "unicode/ufieldpositer.h"
153 typedef void* UDateFormat;
154 
158 typedef enum UDateFormatStyle {
169 
171  UDAT_RELATIVE = (1 << 7),
172 
173  UDAT_FULL_RELATIVE = UDAT_FULL | UDAT_RELATIVE,
174 
175  UDAT_LONG_RELATIVE = UDAT_LONG | UDAT_RELATIVE,
176 
177  UDAT_MEDIUM_RELATIVE = UDAT_MEDIUM | UDAT_RELATIVE,
178 
179  UDAT_SHORT_RELATIVE = UDAT_SHORT | UDAT_RELATIVE,
180 
181 
183  UDAT_NONE = -1,
184 
191 
192 #ifndef U_HIDE_INTERNAL_API
195 #endif /* U_HIDE_INTERNAL_API */
197 
198 /* Skeletons for dates. */
199 
204 #define UDAT_YEAR "y"
205 
209 #define UDAT_QUARTER "QQQQ"
210 
214 #define UDAT_ABBR_QUARTER "QQQ"
215 
219 #define UDAT_YEAR_QUARTER "yQQQQ"
220 
224 #define UDAT_YEAR_ABBR_QUARTER "yQQQ"
225 
229 #define UDAT_MONTH "MMMM"
230 
234 #define UDAT_ABBR_MONTH "MMM"
235 
239 #define UDAT_NUM_MONTH "M"
240 
244 #define UDAT_YEAR_MONTH "yMMMM"
245 
249 #define UDAT_YEAR_ABBR_MONTH "yMMM"
250 
254 #define UDAT_YEAR_NUM_MONTH "yM"
255 
259 #define UDAT_DAY "d"
260 
265 #define UDAT_YEAR_MONTH_DAY "yMMMMd"
266 
271 #define UDAT_YEAR_ABBR_MONTH_DAY "yMMMd"
272 
277 #define UDAT_YEAR_NUM_MONTH_DAY "yMd"
278 
282 #define UDAT_WEEKDAY "EEEE"
283 
287 #define UDAT_ABBR_WEEKDAY "E"
288 
293 #define UDAT_YEAR_MONTH_WEEKDAY_DAY "yMMMMEEEEd"
294 
299 #define UDAT_YEAR_ABBR_MONTH_WEEKDAY_DAY "yMMMEd"
300 
305 #define UDAT_YEAR_NUM_MONTH_WEEKDAY_DAY "yMEd"
306 
311 #define UDAT_MONTH_DAY "MMMMd"
312 
317 #define UDAT_ABBR_MONTH_DAY "MMMd"
318 
323 #define UDAT_NUM_MONTH_DAY "Md"
324 
329 #define UDAT_MONTH_WEEKDAY_DAY "MMMMEEEEd"
330 
335 #define UDAT_ABBR_MONTH_WEEKDAY_DAY "MMMEd"
336 
341 #define UDAT_NUM_MONTH_WEEKDAY_DAY "MEd"
342 
343 /* Skeletons for times. */
344 
349 #define UDAT_HOUR "j"
350 
354 #define UDAT_HOUR24 "H"
355 
359 #define UDAT_MINUTE "m"
360 
365 #define UDAT_HOUR_MINUTE "jm"
366 
371 #define UDAT_HOUR24_MINUTE "Hm"
372 
376 #define UDAT_SECOND "s"
377 
383 #define UDAT_HOUR_MINUTE_SECOND "jms"
384 
390 #define UDAT_HOUR24_MINUTE_SECOND "Hms"
391 
396 #define UDAT_MINUTE_SECOND "ms"
397 
398 /* Skeletons for time zones. */
399 
407 #define UDAT_LOCATION_TZ "VVVV"
408 
415 #define UDAT_GENERIC_TZ "vvvv"
416 
423 #define UDAT_ABBR_GENERIC_TZ "v"
424 
431 #define UDAT_SPECIFIC_TZ "zzzz"
432 
439 #define UDAT_ABBR_SPECIFIC_TZ "z"
440 
447 #define UDAT_ABBR_UTC_TZ "ZZZZ"
448 
449 /* deprecated skeleton constants */
450 
451 #ifndef U_HIDE_DEPRECATED_API
452 
456 #define UDAT_STANDALONE_MONTH "LLLL"
457 
461 #define UDAT_ABBR_STANDALONE_MONTH "LLL"
462 
467 #define UDAT_HOUR_MINUTE_GENERIC_TZ "jmv"
468 
472 #define UDAT_HOUR_MINUTE_TZ "jmz"
473 
477 #define UDAT_HOUR_GENERIC_TZ "jv"
478 
482 #define UDAT_HOUR_TZ "jz"
483 #endif /* U_HIDE_DEPRECATED_API */
484 
485 #ifndef U_HIDE_INTERNAL_API
486 
491 #define JP_ERA_2019_ROOT "Reiwa"
492 
497 #define JP_ERA_2019_JA "\\u4EE4\\u548C"
498 
503 #define JP_ERA_2019_NARROW "R"
504 #endif // U_HIDE_INTERNAL_API
505 
511 typedef enum UDateFormatField {
518 
525 
532 
539 
548 
557 
564 
571 
586 
593 
600 
607 
614 
621 
628 
637 
646 
654 
661 
668 
675 
682 
689 
697 
711 
719 
728 
737 
744 
753 
761 
769 
777 
778 #ifndef U_HIDE_INTERNAL_API
779 
785 #endif /* U_HIDE_INTERNAL_API */
786 
794 
795  /* FieldPosition selector for 'B' field alignment.
796  * Displays flexible day periods, such as "in the morning", if available.
797  * @stable ICU 57
798  */
799  UDAT_FLEXIBLE_DAY_PERIOD_FIELD = 36,
800 
801 #ifndef U_HIDE_INTERNAL_API
802 
809 #endif /* U_HIDE_INTERNAL_API */
810 
811 #ifndef U_HIDE_DEPRECATED_API
812 
819 #endif /* U_HIDE_DEPRECATED_API */
821 
822 
823 #ifndef U_HIDE_INTERNAL_API
824 
829 #define UDAT_HAS_PATTERN_CHAR_FOR_TIME_SEPARATOR 0
830 #endif /* U_HIDE_INTERNAL_API */
831 
832 
841 U_CAPI UCalendarDateFields U_EXPORT2
843 
844 
873 U_CAPI UDateFormat* U_EXPORT2
874 udat_open(UDateFormatStyle timeStyle,
875  UDateFormatStyle dateStyle,
876  const char *locale,
877  const UChar *tzID,
878  int32_t tzIDLength,
879  const UChar *pattern,
880  int32_t patternLength,
881  UErrorCode *status);
882 
883 
890 U_CAPI void U_EXPORT2
891 udat_close(UDateFormat* format);
892 
893 
923 
924  /* Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API,
925  * it is needed for layout of DateFormat object. */
926 #ifndef U_FORCE_HIDE_DEPRECATED_API
927 
932 #endif // U_FORCE_HIDE_DEPRECATED_API
934 
945 U_CAPI UBool U_EXPORT2
947 
958 U_CAPI void U_EXPORT2
960 
961 
962 
963 #if U_SHOW_CPLUSPLUS_API
964 
965 U_NAMESPACE_BEGIN
966 
977 
978 U_NAMESPACE_END
979 
980 #endif
981 
990 U_CAPI UDateFormat* U_EXPORT2
991 udat_clone(const UDateFormat *fmt,
992  UErrorCode *status);
993 
1012 U_CAPI int32_t U_EXPORT2
1013 udat_format( const UDateFormat* format,
1014  UDate dateToFormat,
1015  UChar* result,
1016  int32_t resultLength,
1017  UFieldPosition* position,
1018  UErrorCode* status);
1019 
1042 U_CAPI int32_t U_EXPORT2
1043 udat_formatCalendar( const UDateFormat* format,
1044  UCalendar* calendar,
1045  UChar* result,
1046  int32_t capacity,
1047  UFieldPosition* position,
1048  UErrorCode* status);
1049 
1077 U_CAPI int32_t U_EXPORT2
1078 udat_formatForFields( const UDateFormat* format,
1079  UDate dateToFormat,
1080  UChar* result,
1081  int32_t resultLength,
1082  UFieldPositionIterator* fpositer,
1083  UErrorCode* status);
1084 
1115 U_CAPI int32_t U_EXPORT2
1117  UCalendar* calendar,
1118  UChar* result,
1119  int32_t capacity,
1120  UFieldPositionIterator* fpositer,
1121  UErrorCode* status);
1122 
1123 
1149 U_CAPI UDate U_EXPORT2
1150 udat_parse(const UDateFormat* format,
1151  const UChar* text,
1152  int32_t textLength,
1153  int32_t *parsePos,
1154  UErrorCode *status);
1155 
1177 U_CAPI void U_EXPORT2
1178 udat_parseCalendar(const UDateFormat* format,
1179  UCalendar* calendar,
1180  const UChar* text,
1181  int32_t textLength,
1182  int32_t *parsePos,
1183  UErrorCode *status);
1184 
1194 U_CAPI UBool U_EXPORT2
1195 udat_isLenient(const UDateFormat* fmt);
1196 
1206 U_CAPI void U_EXPORT2
1208  UBool isLenient);
1209 
1219 U_CAPI const UCalendar* U_EXPORT2
1220 udat_getCalendar(const UDateFormat* fmt);
1221 
1231 U_CAPI void U_EXPORT2
1233  const UCalendar* calendarToSet);
1234 
1244 U_CAPI const UNumberFormat* U_EXPORT2
1245 udat_getNumberFormat(const UDateFormat* fmt);
1246 
1256 U_CAPI const UNumberFormat* U_EXPORT2
1258 
1274 U_CAPI void U_EXPORT2
1276  const UChar* fields,
1277  UNumberFormat* numberFormatToSet,
1278  UErrorCode* status);
1291 U_CAPI void U_EXPORT2
1293  const UNumberFormat* numberFormatToSet);
1303 U_CAPI void U_EXPORT2
1305  UNumberFormat* numberFormatToAdopt);
1315 U_CAPI const char* U_EXPORT2
1316 udat_getAvailable(int32_t localeIndex);
1317 
1326 U_CAPI int32_t U_EXPORT2
1327 udat_countAvailable(void);
1328 
1339 U_CAPI UDate U_EXPORT2
1341  UErrorCode *status);
1342 
1353 U_CAPI void U_EXPORT2
1355  UDate d,
1356  UErrorCode *status);
1357 
1370 U_CAPI int32_t U_EXPORT2
1371 udat_toPattern( const UDateFormat *fmt,
1372  UBool localized,
1373  UChar *result,
1374  int32_t resultLength,
1375  UErrorCode *status);
1376 
1387 U_CAPI void U_EXPORT2
1389  UBool localized,
1390  const UChar *pattern,
1391  int32_t patternLength);
1392 
1423  UDAT_STANDALONE_SHORT_MONTHS,
1424  UDAT_STANDALONE_NARROW_MONTHS,
1440  UDAT_STANDALONE_SHORT_QUARTERS,
1489 
1490 struct UDateFormatSymbols;
1496 
1513 U_CAPI int32_t U_EXPORT2
1514 udat_getSymbols(const UDateFormat *fmt,
1515  UDateFormatSymbolType type,
1516  int32_t symbolIndex,
1517  UChar *result,
1518  int32_t resultLength,
1519  UErrorCode *status);
1520 
1533 U_CAPI int32_t U_EXPORT2
1534 udat_countSymbols( const UDateFormat *fmt,
1535  UDateFormatSymbolType type);
1536 
1552 U_CAPI void U_EXPORT2
1553 udat_setSymbols( UDateFormat *format,
1554  UDateFormatSymbolType type,
1555  int32_t symbolIndex,
1556  UChar *value,
1557  int32_t valueLength,
1558  UErrorCode *status);
1559 
1569 U_CAPI const char* U_EXPORT2
1571  ULocDataLocaleType type,
1572  UErrorCode* status);
1573 
1582 U_CAPI void U_EXPORT2
1584 
1594 U_CAPI UDisplayContext U_EXPORT2
1595 udat_getContext(const UDateFormat* fmt, UDisplayContextType type, UErrorCode* status);
1596 
1597 #ifndef U_HIDE_INTERNAL_API
1598 
1609 U_INTERNAL int32_t U_EXPORT2
1611  UChar *result,
1612  int32_t resultLength,
1613  UErrorCode *status);
1614 
1626 U_INTERNAL int32_t U_EXPORT2
1628  UChar *result,
1629  int32_t resultLength,
1630  UErrorCode *status);
1631 
1644 U_INTERNAL void U_EXPORT2
1646  const UChar *datePattern,
1647  int32_t datePatternLength,
1648  const UChar *timePattern,
1649  int32_t timePatternLength,
1650  UErrorCode *status);
1651 
1656 typedef UDateFormat* (U_EXPORT2 *UDateFormatOpener) (UDateFormatStyle timeStyle,
1657  UDateFormatStyle dateStyle,
1658  const char *locale,
1659  const UChar *tzID,
1660  int32_t tzIDLength,
1661  const UChar *pattern,
1662  int32_t patternLength,
1663  UErrorCode *status);
1664 
1669 U_INTERNAL void U_EXPORT2
1671 
1676 U_INTERNAL UDateFormatOpener U_EXPORT2
1678 #endif /* U_HIDE_INTERNAL_API */
1679 
1680 
1681 #endif /* #if !UCONFIG_NO_FORMATTING */
1682 
1683 #endif
UDAT_HOUR_OF_DAY1_FIELD
@ UDAT_HOUR_OF_DAY1_FIELD
FieldPosition and UFieldPosition selector for 'k' field alignment, corresponding to the UCAL_HOUR_OF_...
Definition: udat.h:547
UDAT_SHORT_MONTHS
@ UDAT_SHORT_MONTHS
The short month names, for example Feb.
Definition: udat.h:1403
UDAT_FIELD_COUNT
@ UDAT_FIELD_COUNT
Number of FieldPosition and UFieldPosition selectors for DateFormat and UDateFormat.
Definition: udat.h:818
UDAT_MINUTE_FIELD
@ UDAT_MINUTE_FIELD
FieldPosition and UFieldPosition selector for 'm' field alignment, corresponding to the UCAL_MINUTE f...
Definition: udat.h:563
UDateFormatField
UDateFormatField
FieldPosition and UFieldPosition selectors for format fields defined by DateFormat and UDateFormat.
Definition: udat.h:511
U_HIDE_INTERNAL_API
#define U_HIDE_INTERNAL_API
Definition: utypes.h:87
UDAT_STANDALONE_SHORT_WEEKDAYS
@ UDAT_STANDALONE_SHORT_WEEKDAYS
The CLDR-style stand-alone "abbreviated" (not "short") weekday names.
Definition: udat.h:1431
UDAT_NARROW_MONTHS
@ UDAT_NARROW_MONTHS
The narrow month names, for example F.
Definition: udat.h:1418
UDAT_JULIAN_DAY_FIELD
@ UDAT_JULIAN_DAY_FIELD
FieldPosition and UFieldPosition selector for 'g' field alignment, corresponding to the UCAL_JULIAN_D...
Definition: udat.h:681
UDAT_PARSE_ALLOW_NUMERIC
@ UDAT_PARSE_ALLOW_NUMERIC
indicates tolerance of numeric data when String data may be assumed.
Definition: udat.h:910
udat_adoptNumberFormatForFields
U_CAPI void udat_adoptNumberFormatForFields(UDateFormat *fmt, const UChar *fields, UNumberFormat *numberFormatToSet, UErrorCode *status)
Set the UNumberFormat for specific field associated with an UDateFormat.
UDAT_STANDALONE_WEEKDAYS
@ UDAT_STANDALONE_WEEKDAYS
The CLDR-style stand-alone "wide" weekday names.
Definition: udat.h:1426
UDAT_CYCLIC_YEARS_ABBREVIATED
@ UDAT_CYCLIC_YEARS_ABBREVIATED
Cyclic year names (only supported for some calendars, and only for FORMAT usage)
Definition: udat.h:1464
UDAT_TIMEZONE_ISO_LOCAL_FIELD
@ UDAT_TIMEZONE_ISO_LOCAL_FIELD
FieldPosition selector for 'x' field alignment, corresponding to the UCAL_ZONE_OFFSET and UCAL_DST_OF...
Definition: udat.h:776
UDAT_STANDALONE_QUARTER_FIELD
@ UDAT_STANDALONE_QUARTER_FIELD
FieldPosition selector for the "q" field alignment, corresponding to stand-alone quarters.
Definition: udat.h:736
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
udat_getContext
U_CAPI UDisplayContext udat_getContext(const UDateFormat *fmt, UDisplayContextType type, UErrorCode *status)
Get the formatter's UDisplayContext value for the specified UDisplayContextType, such as UDISPCTX_TYP...
UDAT_FRACTIONAL_SECOND_FIELD
@ UDAT_FRACTIONAL_SECOND_FIELD
FieldPosition and UFieldPosition selector for 'S' field alignment, corresponding to the UCAL_MILLISEC...
Definition: udat.h:585
UDAT_TIMEZONE_FIELD
@ UDAT_TIMEZONE_FIELD
FieldPosition and UFieldPosition selector for 'z' field alignment, corresponding to the UCAL_ZONE_OFF...
Definition: udat.h:653
udat_getLocaleByType
const U_CAPI char * udat_getLocaleByType(const UDateFormat *fmt, ULocDataLocaleType type, UErrorCode *status)
Get the locale for this date format object.
UDAT_YEAR_NAME_FIELD
@ UDAT_YEAR_NAME_FIELD
FieldPosition selector for "U" field alignment, corresponding to cyclic year names.
Definition: udat.h:752
UDAT_STANDALONE_DAY_FIELD
@ UDAT_STANDALONE_DAY_FIELD
FieldPosition selector for 'c' field alignment, corresponding to the UCAL_DOW_LOCAL field.
Definition: udat.h:710
UDAT_PATTERN
@ UDAT_PATTERN
Use the pattern given in the parameter to udat_open.
Definition: udat.h:190
UDAT_DATE_FIELD
@ UDAT_DATE_FIELD
FieldPosition and UFieldPosition selector for 'd' field alignment, corresponding to the UCAL_DATE fie...
Definition: udat.h:538
UBool
int8_t UBool
The ICU boolean type.
Definition: umachine.h:261
UDAT_DEFAULT
@ UDAT_DEFAULT
Default style.
Definition: udat.h:168
UDAT_STANDALONE_SHORTER_WEEKDAYS
@ UDAT_STANDALONE_SHORTER_WEEKDAYS
Standalone version of UDAT_SHORTER_WEEKDAYS.
Definition: udat.h:1453
udat_setCalendar
U_CAPI void udat_setCalendar(UDateFormat *fmt, const UCalendar *calendarToSet)
Set the UCalendar associated with an UDateFormat.
ULocDataLocaleType
ULocDataLocaleType
Constants for *_getLocale() Allow user to select whether she wants information on requested,...
Definition: uloc.h:338
UDAT_YEAR_WOY_FIELD
@ UDAT_YEAR_WOY_FIELD
FieldPosition and UFieldPosition selector for 'Y' field alignment, corresponding to the UCAL_YEAR_WOY...
Definition: udat.h:660
UDAT_RELATIVE
@ UDAT_RELATIVE
Bitfield for relative date.
Definition: udat.h:171
UDateFormatOpener
UDateFormat *(* UDateFormatOpener)(UDateFormatStyle timeStyle, UDateFormatStyle dateStyle, const char *locale, const UChar *tzID, int32_t tzIDLength, const UChar *pattern, int32_t patternLength, UErrorCode *status)
Definition: udat.h:1656
udat_getBooleanAttribute
U_CAPI UBool udat_getBooleanAttribute(const UDateFormat *fmt, UDateFormatBooleanAttribute attr, UErrorCode *status)
Get a boolean attribute associated with a UDateFormat.
UDAT_DAY_OF_YEAR_FIELD
@ UDAT_DAY_OF_YEAR_FIELD
FieldPosition and UFieldPosition selector for 'D' field alignment, corresponding to the UCAL_DAY_OF_Y...
Definition: udat.h:599
udat_parse
U_CAPI UDate udat_parse(const UDateFormat *format, const UChar *text, int32_t textLength, int32_t *parsePos, UErrorCode *status)
Parse a string into an date/time using a UDateFormat.
UDAT_DOW_LOCAL_FIELD
@ UDAT_DOW_LOCAL_FIELD
FieldPosition and UFieldPosition selector for 'e' field alignment, corresponding to the UCAL_DOW_LOCA...
Definition: udat.h:667
UDAT_EXTENDED_YEAR_FIELD
@ UDAT_EXTENDED_YEAR_FIELD
FieldPosition and UFieldPosition selector for 'u' field alignment, corresponding to the UCAL_EXTENDED...
Definition: udat.h:674
UDAT_RELATED_YEAR_FIELD
@ UDAT_RELATED_YEAR_FIELD
FieldPosition and UFieldPosition selector for 'r' field alignment, no directly corresponding UCAL_ fi...
Definition: udat.h:784
UDateFormat
void * UDateFormat
A date formatter.
Definition: udat.h:153
udat_formatCalendar
U_CAPI int32_t udat_formatCalendar(const UDateFormat *format, UCalendar *calendar, UChar *result, int32_t capacity, UFieldPosition *position, UErrorCode *status)
Format a date using an UDateFormat.
UDateFormatSymbols
struct UDateFormatSymbols UDateFormatSymbols
Date format symbols.
Definition: udat.h:1495
UDAT_HOUR1_FIELD
@ UDAT_HOUR1_FIELD
FieldPosition and UFieldPosition selector for 'h' field alignment, corresponding to the UCAL_HOUR fie...
Definition: udat.h:636
UDAT_IGNORE
@ UDAT_IGNORE
Definition: udat.h:194
UDAT_MONTHS
@ UDAT_MONTHS
The month names, for example February.
Definition: udat.h:1401
UDAT_SHORTER_WEEKDAYS
@ UDAT_SHORTER_WEEKDAYS
The CLDR-style short weekday names, e.g.
Definition: udat.h:1448
udat_getCalendar
const U_CAPI UCalendar * udat_getCalendar(const UDateFormat *fmt)
Get the UCalendar associated with an UDateFormat.
UDAT_TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD
@ UDAT_TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD
FieldPosition selector for 'O' field alignment, corresponding to the UCAL_ZONE_OFFSET and UCAL_DST_OF...
Definition: udat.h:760
udat_toPattern
U_CAPI int32_t udat_toPattern(const UDateFormat *fmt, UBool localized, UChar *result, int32_t resultLength, UErrorCode *status)
Extract the pattern from a UDateFormat.
UDateFormatBooleanAttribute
UDateFormatBooleanAttribute
DateFormat boolean attributes.
Definition: udat.h:899
UDAT_PARSE_PARTIAL_LITERAL_MATCH
@ UDAT_PARSE_PARTIAL_LITERAL_MATCH
indicates tolerance of a partial literal match e.g.
Definition: udat.h:916
UDAT_TIMEZONE_SPECIAL_FIELD
@ UDAT_TIMEZONE_SPECIAL_FIELD
FieldPosition and UFieldPosition selector for 'V' field alignment, corresponding to the UCAL_ZONE_OFF...
Definition: udat.h:743
UDAT_NARROW_WEEKDAYS
@ UDAT_NARROW_WEEKDAYS
The CLDR-style format "narrow" weekday names, for example "M".
Definition: udat.h:1420
udat_setContext
U_CAPI void udat_setContext(UDateFormat *fmt, UDisplayContext value, UErrorCode *status)
Set a particular UDisplayContext value in the formatter, such as UDISPCTX_CAPITALIZATION_FOR_STANDALO...
UDisplayContextType
UDisplayContextType
Display context types, for getting values of a particular setting.
Definition: udisplaycontext.h:27
udat_get2DigitYearStart
U_CAPI UDate udat_get2DigitYearStart(const UDateFormat *fmt, UErrorCode *status)
Get the year relative to which all 2-digit years are interpreted.
UFieldPositionIterator
struct UFieldPositionIterator UFieldPositionIterator
C typedef for struct UFieldPositionIterator.
Definition: ufieldpositer.h:44
udat_applyPattern
U_CAPI void udat_applyPattern(UDateFormat *format, UBool localized, const UChar *pattern, int32_t patternLength)
Set the pattern used by an UDateFormat.
UDAT_MILLISECONDS_IN_DAY_FIELD
@ UDAT_MILLISECONDS_IN_DAY_FIELD
FieldPosition and UFieldPosition selector for 'A' field alignment, corresponding to the UCAL_MILLISEC...
Definition: udat.h:688
UDAT_LOCALIZED_CHARS
@ UDAT_LOCALIZED_CHARS
The localized characters.
Definition: udat.h:1414
udat_unregisterOpener
UDateFormatOpener udat_unregisterOpener(UDateFormatOpener opener, UErrorCode *status)
Un-Register a provider factory.
unum.h
C API: Compatibility APIs for number formatting.
UDAT_LONG
@ UDAT_LONG
Long style.
Definition: udat.h:162
UDAT_ZODIAC_NAMES_WIDE
@ UDAT_ZODIAC_NAMES_WIDE
Calendar zodiac names (only supported for some calendars, and only for FORMAT usage; udat_setSymbols ...
Definition: udat.h:1476
UDAT_DAY_OF_WEEK_FIELD
@ UDAT_DAY_OF_WEEK_FIELD
FieldPosition and UFieldPosition selector for 'E' field alignment, corresponding to the UCAL_DAY_OF_W...
Definition: udat.h:592
udat_format
U_CAPI int32_t udat_format(const UDateFormat *format, UDate dateToFormat, UChar *result, int32_t resultLength, UFieldPosition *position, UErrorCode *status)
Format a date using a UDateFormat.
UDAT_TIMEZONE_ISO_FIELD
@ UDAT_TIMEZONE_ISO_FIELD
FieldPosition selector for 'X' field alignment, corresponding to the UCAL_ZONE_OFFSET and UCAL_DST_OF...
Definition: udat.h:768
UDAT_HOUR0_FIELD
@ UDAT_HOUR0_FIELD
FieldPosition and UFieldPosition selector for 'K' field alignment, corresponding to the UCAL_HOUR fie...
Definition: udat.h:645
UErrorCode
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415
UDAT_ERA_NAMES
@ UDAT_ERA_NAMES
The long era names, for example Anno Domini.
Definition: udat.h:1416
udat_setLenient
U_CAPI void udat_setLenient(UDateFormat *fmt, UBool isLenient)
Specify whether an UDateFormat will perform lenient parsing.
UDAT_QUARTERS
@ UDAT_QUARTERS
The quarters, for example 1st Quarter.
Definition: udat.h:1435
UDAT_NONE
@ UDAT_NONE
No style.
Definition: udat.h:183
ucal.h
C API: Calendar.
U_INTERNAL
#define U_INTERNAL
This is used to declare a function as an internal ICU C API
Definition: umachine.h:119
udat_getSymbols
U_CAPI int32_t udat_getSymbols(const UDateFormat *fmt, UDateFormatSymbolType type, int32_t symbolIndex, UChar *result, int32_t resultLength, UErrorCode *status)
Get the symbols associated with an UDateFormat.
udat_clone
U_CAPI UDateFormat * udat_clone(const UDateFormat *fmt, UErrorCode *status)
Open a copy of a UDateFormat.
udat_getNumberFormat
const U_CAPI UNumberFormat * udat_getNumberFormat(const UDateFormat *fmt)
Get the UNumberFormat associated with an UDateFormat.
UDAT_BOOLEAN_ATTRIBUTE_COUNT
@ UDAT_BOOLEAN_ATTRIBUTE_COUNT
One more than the highest normal UDateFormatBooleanAttribute value.
Definition: udat.h:931
UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH
@ UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH
indicates tolerance of pattern mismatch between input data and specified format pattern.
Definition: udat.h:922
UDAT_FULL
@ UDAT_FULL
Full style.
Definition: udat.h:160
udat_countAvailable
U_CAPI int32_t udat_countAvailable(void)
Determine how many locales have date/time formatting patterns available.
UDAT_TIME_SEPARATOR_FIELD
@ UDAT_TIME_SEPARATOR_FIELD
FieldPosition and UFieldPosition selector for time separator, no corresponding UCAL_ field.
Definition: udat.h:808
ufieldpositer.h
C API: UFieldPositionIterator for use with format APIs.
UDAT_DAY_OF_WEEK_IN_MONTH_FIELD
@ UDAT_DAY_OF_WEEK_IN_MONTH_FIELD
FieldPosition and UFieldPosition selector for 'F' field alignment, corresponding to the UCAL_DAY_OF_W...
Definition: udat.h:606
UDAT_STANDALONE_MONTH_FIELD
@ UDAT_STANDALONE_MONTH_FIELD
FieldPosition selector for 'L' field alignment, corresponding to the UCAL_MONTH field.
Definition: udat.h:718
UDAT_YEAR_FIELD
@ UDAT_YEAR_FIELD
FieldPosition and UFieldPosition selector for 'y' field alignment, corresponding to the UCAL_YEAR fie...
Definition: udat.h:524
UDAT_STANDALONE_NARROW_WEEKDAYS
@ UDAT_STANDALONE_NARROW_WEEKDAYS
The CLDR-style stand-alone "narrow" weekday names.
Definition: udat.h:1433
udat_setNumberFormat
U_CAPI void udat_setNumberFormat(UDateFormat *fmt, const UNumberFormat *numberFormatToSet)
Set the UNumberFormat associated with an UDateFormat.
U_DEFINE_LOCAL_OPEN_POINTER
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
Definition: localpointer.h:562
UFieldPosition
A struct representing a range of text containing a specific field.
Definition: umisc.h:34
udat_toCalendarDateField
U_CAPI UCalendarDateFields udat_toCalendarDateField(UDateFormatField field)
Maps from a UDateFormatField to the corresponding UCalendarDateFields.
udat_setBooleanAttribute
U_CAPI void udat_setBooleanAttribute(UDateFormat *fmt, UDateFormatBooleanAttribute attr, UBool newValue, UErrorCode *status)
Set a boolean attribute associated with a UDateFormat.
UDAT_TIMEZONE_GENERIC_FIELD
@ UDAT_TIMEZONE_GENERIC_FIELD
FieldPosition and UFieldPosition selector for 'v' field alignment, corresponding to the UCAL_ZONE_OFF...
Definition: udat.h:703
UDAT_SECOND_FIELD
@ UDAT_SECOND_FIELD
FieldPosition and UFieldPosition selector for 's' field alignment, corresponding to the UCAL_SECOND f...
Definition: udat.h:570
udat_close
U_CAPI void udat_close(UDateFormat *format)
Close a UDateFormat.
UDAT_ERAS
@ UDAT_ERAS
The era names, for example AD.
Definition: udat.h:1399
udat_formatCalendarForFields
U_CAPI int32_t udat_formatCalendarForFields(const UDateFormat *format, UCalendar *calendar, UChar *result, int32_t capacity, UFieldPositionIterator *fpositer, UErrorCode *status)
Format a date using a UDateFormat.
UDAT_AM_PMS
@ UDAT_AM_PMS
The AM/PM names, for example AM.
Definition: udat.h:1412
localpointer.h
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
UCalendar
void * UCalendar
A calendar.
Definition: ucal.h:169
udat_toPatternRelativeTime
int32_t udat_toPatternRelativeTime(const UDateFormat *fmt, UChar *result, int32_t resultLength, UErrorCode *status)
Extract the time pattern from a UDateFormat set for relative date formatting.
LocalUDateFormatPointer
UDAT_CYCLIC_YEARS_WIDE
@ UDAT_CYCLIC_YEARS_WIDE
Cyclic year names (only supported for some calendars, and only for FORMAT usage; udat_setSymbols not ...
Definition: udat.h:1459
UDate
double UDate
Date and Time data type.
Definition: utypes.h:203
UDAT_TIMEZONE_RFC_FIELD
@ UDAT_TIMEZONE_RFC_FIELD
FieldPosition and UFieldPosition selector for 'Z' field alignment, corresponding to the UCAL_ZONE_OFF...
Definition: udat.h:696
UDAT_PARSE_ALLOW_WHITESPACE
@ UDAT_PARSE_ALLOW_WHITESPACE
indicates whether whitespace is allowed.
Definition: udat.h:904
UDateFormatStyle
UDateFormatStyle
The possible date/time format styles.
Definition: udat.h:158
udat_toPatternRelativeDate
int32_t udat_toPatternRelativeDate(const UDateFormat *fmt, UChar *result, int32_t resultLength, UErrorCode *status)
Extract the date pattern from a UDateFormat set for relative date formatting.
UDAT_WEEK_OF_YEAR_FIELD
@ UDAT_WEEK_OF_YEAR_FIELD
FieldPosition and UFieldPosition selector for 'w' field alignment, corresponding to the UCAL_WEEK_OF_...
Definition: udat.h:613
udat_countSymbols
U_CAPI int32_t udat_countSymbols(const UDateFormat *fmt, UDateFormatSymbolType type)
Count the number of particular symbols for an UDateFormat.
UDAT_HOUR_OF_DAY0_FIELD
@ UDAT_HOUR_OF_DAY0_FIELD
FieldPosition and UFieldPosition selector for 'H' field alignment, corresponding to the UCAL_HOUR_OF_...
Definition: udat.h:556
UDisplayContext
UDisplayContext
Display context settings.
Definition: udisplaycontext.h:64
UNumberFormat
void * UNumberFormat
A number formatter.
Definition: unum.h:141
udat_formatForFields
U_CAPI int32_t udat_formatForFields(const UDateFormat *format, UDate dateToFormat, UChar *result, int32_t resultLength, UFieldPositionIterator *fpositer, UErrorCode *status)
Format a date using a UDateFormat.
udat_adoptNumberFormat
U_CAPI void udat_adoptNumberFormat(UDateFormat *fmt, UNumberFormat *numberFormatToAdopt)
Adopt the UNumberFormat associated with an UDateFormat.
udat_getNumberFormatForField
const U_CAPI UNumberFormat * udat_getNumberFormatForField(const UDateFormat *fmt, UChar field)
Get the UNumberFormat for specific field associated with an UDateFormat.
UDAT_ZODIAC_NAMES_ABBREVIATED
@ UDAT_ZODIAC_NAMES_ABBREVIATED
Calendar zodiac names (only supported for some calendars, and only for FORMAT usage)
Definition: udat.h:1481
UCalendarDateFields
UCalendarDateFields
Possible fields in a UCalendar.
Definition: ucal.h:199
UDAT_SHORT_QUARTERS
@ UDAT_SHORT_QUARTERS
The short quarter names, for example Q1.
Definition: udat.h:1437
udat_set2DigitYearStart
U_CAPI void udat_set2DigitYearStart(UDateFormat *fmt, UDate d, UErrorCode *status)
Set the year relative to which all 2-digit years will be interpreted.
udat_isLenient
U_CAPI UBool udat_isLenient(const UDateFormat *fmt)
Determine if an UDateFormat will perform lenient parsing.
UChar
uint16_t UChar
Definition: umachine.h:378
UDAT_MEDIUM
@ UDAT_MEDIUM
Medium style.
Definition: udat.h:164
UDateFormatSymbolType
UDateFormatSymbolType
The possible types of date format symbols.
Definition: udat.h:1397
udisplaycontext.h
C API: Display context types (enum values)
UDAT_QUARTER_FIELD
@ UDAT_QUARTER_FIELD
FieldPosition selector for "Q" field alignment, corresponding to quarters.
Definition: udat.h:727
UDAT_WEEK_OF_MONTH_FIELD
@ UDAT_WEEK_OF_MONTH_FIELD
FieldPosition and UFieldPosition selector for 'W' field alignment, corresponding to the UCAL_WEEK_OF_...
Definition: udat.h:620
UDAT_WEEKDAYS
@ UDAT_WEEKDAYS
The CLDR-style format "wide" weekday names, for example Monday.
Definition: udat.h:1405
udat_applyPatternRelative
void udat_applyPatternRelative(UDateFormat *format, const UChar *datePattern, int32_t datePatternLength, const UChar *timePattern, int32_t timePatternLength, UErrorCode *status)
Set the date & time patterns used by a UDateFormat set for relative date formatting.
UDAT_AM_PM_MIDNIGHT_NOON_FIELD
@ UDAT_AM_PM_MIDNIGHT_NOON_FIELD
FieldPosition selector for 'b' field alignment.
Definition: udat.h:793
udat_registerOpener
void udat_registerOpener(UDateFormatOpener opener, UErrorCode *status)
Register a provider factory.
U_CAPI
#define U_CAPI
This is used to declare a function as a public ICU C API.
Definition: umachine.h:109
UDAT_ERA_FIELD
@ UDAT_ERA_FIELD
FieldPosition and UFieldPosition selector for 'G' field alignment, corresponding to the UCAL_ERA fiel...
Definition: udat.h:517
udat_parseCalendar
U_CAPI void udat_parseCalendar(const UDateFormat *format, UCalendar *calendar, const UChar *text, int32_t textLength, int32_t *parsePos, UErrorCode *status)
Parse a string into an date/time using a UDateFormat.
UDAT_ZODIAC_NAMES_NARROW
@ UDAT_ZODIAC_NAMES_NARROW
Calendar zodiac names (only supported for some calendars, and only for FORMAT usage; udat_setSymbols ...
Definition: udat.h:1487
UDAT_AM_PM_FIELD
@ UDAT_AM_PM_FIELD
FieldPosition and UFieldPosition selector for 'a' field alignment, corresponding to the UCAL_AM_PM fi...
Definition: udat.h:627
UDAT_STANDALONE_MONTHS
@ UDAT_STANDALONE_MONTHS
Standalone context versions of months.
Definition: udat.h:1422
UDAT_CYCLIC_YEARS_NARROW
@ UDAT_CYCLIC_YEARS_NARROW
Cyclic year names (only supported for some calendars, and only for FORMAT usage; udat_setSymbols not ...
Definition: udat.h:1470
udat_getAvailable
const U_CAPI char * udat_getAvailable(int32_t localeIndex)
Get a locale for which date/time formatting patterns are available.
UDAT_SHORT
@ UDAT_SHORT
Short style.
Definition: udat.h:166
udat_open
U_CAPI UDateFormat * udat_open(UDateFormatStyle timeStyle, UDateFormatStyle dateStyle, const char *locale, const UChar *tzID, int32_t tzIDLength, const UChar *pattern, int32_t patternLength, UErrorCode *status)
Open a new UDateFormat for formatting and parsing dates and times.
udat_setSymbols
U_CAPI void udat_setSymbols(UDateFormat *format, UDateFormatSymbolType type, int32_t symbolIndex, UChar *value, int32_t valueLength, UErrorCode *status)
Set the symbols associated with an UDateFormat.
UDAT_MONTH_FIELD
@ UDAT_MONTH_FIELD
FieldPosition and UFieldPosition selector for 'M' field alignment, corresponding to the UCAL_MONTH fi...
Definition: udat.h:531
UDAT_STANDALONE_QUARTERS
@ UDAT_STANDALONE_QUARTERS
Standalone context versions of quarters.
Definition: udat.h:1439
UDAT_SHORT_WEEKDAYS
@ UDAT_SHORT_WEEKDAYS
The CLDR-style format "abbreviated" (not "short") weekday names, for example "Mon....
Definition: udat.h:1410