ICU 65.1 65.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"
20 #include "unicode/udisplaycontext.h"
21 #include "unicode/ufieldpositer.h"
153 typedef void* UDateFormat;
154
158 typedef enum UDateFormatStyle {
160 UDAT_FULL,
162 UDAT_LONG,
164 UDAT_MEDIUM,
166 UDAT_SHORT,
168 UDAT_DEFAULT = UDAT_MEDIUM,
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
190 UDAT_PATTERN = -2,
191
192 #ifndef U_HIDE_INTERNAL_API
194 UDAT_IGNORE = UDAT_PATTERN
195 #endif /* U_HIDE_INTERNAL_API */
196 } UDateFormatStyle;
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 {
517 UDAT_ERA_FIELD = 0,
518
524 UDAT_YEAR_FIELD = 1,
525
531 UDAT_MONTH_FIELD = 2,
532
538 UDAT_DATE_FIELD = 3,
539
547 UDAT_HOUR_OF_DAY1_FIELD = 4,
548
556 UDAT_HOUR_OF_DAY0_FIELD = 5,
557
563 UDAT_MINUTE_FIELD = 6,
564
570 UDAT_SECOND_FIELD = 7,
571
585 UDAT_FRACTIONAL_SECOND_FIELD = 8,
586
592 UDAT_DAY_OF_WEEK_FIELD = 9,
593
599 UDAT_DAY_OF_YEAR_FIELD = 10,
600
606 UDAT_DAY_OF_WEEK_IN_MONTH_FIELD = 11,
607
613 UDAT_WEEK_OF_YEAR_FIELD = 12,
614
620 UDAT_WEEK_OF_MONTH_FIELD = 13,
621
627 UDAT_AM_PM_FIELD = 14,
628
636 UDAT_HOUR1_FIELD = 15,
637
645 UDAT_HOUR0_FIELD = 16,
646
653 UDAT_TIMEZONE_FIELD = 17,
654
660 UDAT_YEAR_WOY_FIELD = 18,
661
667 UDAT_DOW_LOCAL_FIELD = 19,
668
674 UDAT_EXTENDED_YEAR_FIELD = 20,
675
681 UDAT_JULIAN_DAY_FIELD = 21,
682
688 UDAT_MILLISECONDS_IN_DAY_FIELD = 22,
689
696 UDAT_TIMEZONE_RFC_FIELD = 23,
697
703 UDAT_TIMEZONE_GENERIC_FIELD = 24,
710 UDAT_STANDALONE_DAY_FIELD = 25,
711
718 UDAT_STANDALONE_MONTH_FIELD = 26,
719
727 UDAT_QUARTER_FIELD = 27,
728
736 UDAT_STANDALONE_QUARTER_FIELD = 28,
737
743 UDAT_TIMEZONE_SPECIAL_FIELD = 29,
744
752 UDAT_YEAR_NAME_FIELD = 30,
753
760 UDAT_TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD = 31,
761
768 UDAT_TIMEZONE_ISO_FIELD = 32,
769
776 UDAT_TIMEZONE_ISO_LOCAL_FIELD = 33,
777
778 #ifndef U_HIDE_INTERNAL_API
779
784 UDAT_RELATED_YEAR_FIELD = 34,
785 #endif /* U_HIDE_INTERNAL_API */
786
793 UDAT_AM_PM_MIDNIGHT_NOON_FIELD = 35,
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
808 UDAT_TIME_SEPARATOR_FIELD = 37,
809 #endif /* U_HIDE_INTERNAL_API */
810
811 #ifndef U_HIDE_DEPRECATED_API
812
818 UDAT_FIELD_COUNT = 38
819 #endif /* U_HIDE_DEPRECATED_API */
820 } UDateFormatField;
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
842 udat_toCalendarDateField(UDateFormatField field);
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
899 typedef enum UDateFormatBooleanAttribute {
904 UDAT_PARSE_ALLOW_WHITESPACE = 0,
910 UDAT_PARSE_ALLOW_NUMERIC = 1,
916 UDAT_PARSE_PARTIAL_LITERAL_MATCH = 2,
922 UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH = 3,
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
931 UDAT_BOOLEAN_ATTRIBUTE_COUNT = 4
932 #endif // U_FORCE_HIDE_DEPRECATED_API
933 } UDateFormatBooleanAttribute;
934
945 U_CAPI UBool U_EXPORT2
946 udat_getBooleanAttribute(const UDateFormat* fmt, UDateFormatBooleanAttribute attr, UErrorCode* status);
947
958 U_CAPI void U_EXPORT2
959 udat_setBooleanAttribute(UDateFormat *fmt, UDateFormatBooleanAttribute attr, UBool newValue, UErrorCode* status);
960
961
962
963 #if U_SHOW_CPLUSPLUS_API
964
965 U_NAMESPACE_BEGIN
966
976 U_DEFINE_LOCAL_OPEN_POINTER(LocalUDateFormatPointer, UDateFormat, udat_close);
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
1116 udat_formatCalendarForFields( const UDateFormat* format,
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
1207 udat_setLenient( UDateFormat* fmt,
1208 UBool isLenient);
1209
1219 U_CAPI const UCalendar* U_EXPORT2
1220 udat_getCalendar(const UDateFormat* fmt);
1221
1231 U_CAPI void U_EXPORT2
1232 udat_setCalendar( UDateFormat* fmt,
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
1257 udat_getNumberFormatForField(const UDateFormat* fmt, UChar field);
1258
1274 U_CAPI void U_EXPORT2
1275 udat_adoptNumberFormatForFields( UDateFormat* fmt,
1276 const UChar* fields,
1277 UNumberFormat* numberFormatToSet,
1278 UErrorCode* status);
1291 U_CAPI void U_EXPORT2
1292 udat_setNumberFormat( UDateFormat* fmt,
1293 const UNumberFormat* numberFormatToSet);
1303 U_CAPI void U_EXPORT2
1304 udat_adoptNumberFormat( UDateFormat* fmt,
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
1340 udat_get2DigitYearStart( const UDateFormat *fmt,
1341 UErrorCode *status);
1342
1353 U_CAPI void U_EXPORT2
1354 udat_set2DigitYearStart( UDateFormat *fmt,
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
1388 udat_applyPattern( UDateFormat *format,
1389 UBool localized,
1390 const UChar *pattern,
1391 int32_t patternLength);
1392
1397 typedef enum UDateFormatSymbolType {
1399 UDAT_ERAS,
1401 UDAT_MONTHS,
1403 UDAT_SHORT_MONTHS,
1405 UDAT_WEEKDAYS,
1410 UDAT_SHORT_WEEKDAYS,
1412 UDAT_AM_PMS,
1414 UDAT_LOCALIZED_CHARS,
1416 UDAT_ERA_NAMES,
1418 UDAT_NARROW_MONTHS,
1420 UDAT_NARROW_WEEKDAYS,
1422 UDAT_STANDALONE_MONTHS,
1423 UDAT_STANDALONE_SHORT_MONTHS,
1424 UDAT_STANDALONE_NARROW_MONTHS,
1426 UDAT_STANDALONE_WEEKDAYS,
1431 UDAT_STANDALONE_SHORT_WEEKDAYS,
1433 UDAT_STANDALONE_NARROW_WEEKDAYS,
1435 UDAT_QUARTERS,
1437 UDAT_SHORT_QUARTERS,
1439 UDAT_STANDALONE_QUARTERS,
1440 UDAT_STANDALONE_SHORT_QUARTERS,
1448 UDAT_SHORTER_WEEKDAYS,
1453 UDAT_STANDALONE_SHORTER_WEEKDAYS,
1459 UDAT_CYCLIC_YEARS_WIDE,
1464 UDAT_CYCLIC_YEARS_ABBREVIATED,
1470 UDAT_CYCLIC_YEARS_NARROW,
1476 UDAT_ZODIAC_NAMES_WIDE,
1481 UDAT_ZODIAC_NAMES_ABBREVIATED,
1487 UDAT_ZODIAC_NAMES_NARROW
1488 } UDateFormatSymbolType;
1489
1490 struct UDateFormatSymbols;
1495 typedef struct UDateFormatSymbols 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
1570 udat_getLocaleByType(const UDateFormat *fmt,
1571 ULocDataLocaleType type,
1572 UErrorCode* status);
1573
1582 U_CAPI void U_EXPORT2
1583 udat_setContext(UDateFormat* fmt, UDisplayContext value, UErrorCode* status);
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
1610 udat_toPatternRelativeDate(const UDateFormat *fmt,
1611 UChar *result,
1612 int32_t resultLength,
1613 UErrorCode *status);
1614
1626 U_INTERNAL int32_t U_EXPORT2
1627 udat_toPatternRelativeTime(const UDateFormat *fmt,
1628 UChar *result,
1629 int32_t resultLength,
1630 UErrorCode *status);
1631
1644 U_INTERNAL void U_EXPORT2
1645 udat_applyPatternRelative(UDateFormat *format,
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
1670 udat_registerOpener(UDateFormatOpener opener, UErrorCode *status);
1671
1676 U_INTERNAL UDateFormatOpener U_EXPORT2
1677 udat_unregisterOpener(UDateFormatOpener opener, UErrorCode *status);
1678 #endif /* U_HIDE_INTERNAL_API */
1679
1680
1681 #endif /* #if !UCONFIG_NO_FORMATTING */
1682
1683 #endif
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...
UCalendar
void * UCalendar
A calendar.
Definition: ucal.h:169
UDAT_WEEK_OF_YEAR_FIELD
FieldPosition and UFieldPosition selector for &#39;w&#39; field alignment, corresponding to the UCAL_WEEK_OF_...
Definition: udat.h:613
UDAT_AM_PM_MIDNIGHT_NOON_FIELD
FieldPosition selector for &#39;b&#39; field alignment.
Definition: udat.h:793
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_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
FieldPosition and UFieldPosition selector for &#39;e&#39; field alignment, corresponding to the UCAL_DOW_LOCA...
Definition: udat.h:667
UDAT_SHORTER_WEEKDAYS
The CLDR-style short weekday names, e.g.
Definition: udat.h:1448
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_STANDALONE_MONTHS
Standalone context versions of months.
Definition: udat.h:1422
UCalendarDateFields
UCalendarDateFields
Possible fields in a UCalendar.
Definition: ucal.h:199
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_PARSE_PARTIAL_LITERAL_MATCH
indicates tolerance of a partial literal match e.g.
Definition: udat.h:916
UDAT_LOCALIZED_CHARS
The localized characters.
Definition: udat.h:1414
UDAT_TIMEZONE_SPECIAL_FIELD
FieldPosition and UFieldPosition selector for &#39;V&#39; field alignment, corresponding to the UCAL_ZONE_OFF...
Definition: udat.h:743
UDAT_NARROW_WEEKDAYS
The CLDR-style format "narrow" weekday names, for example "M".
Definition: udat.h:1420
U_CAPI
#define U_CAPI
This is used to declare a function as a public ICU C API.
Definition: umachine.h:109
UDAT_QUARTER_FIELD
FieldPosition selector for "Q" field alignment, corresponding to quarters.
Definition: udat.h:727
ucal.h
C API: Calendar.
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_MONTH_FIELD
FieldPosition and UFieldPosition selector for &#39;M&#39; field alignment, corresponding to the UCAL_MONTH fi...
Definition: udat.h:531
udat_getLocaleByType
U_CAPI const char * udat_getLocaleByType(const UDateFormat *fmt, ULocDataLocaleType type, UErrorCode *status)
Get the locale for this date format object.
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_DAY1_FIELD
FieldPosition and UFieldPosition selector for &#39;k&#39; field alignment, corresponding to the UCAL_HOUR_OF_...
Definition: udat.h:547
UDAT_ERA_NAMES
The long era names, for example Anno Domini.
Definition: udat.h:1416
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_ZODIAC_NAMES_NARROW
Calendar zodiac names (only supported for some calendars, and only for FORMAT usage; udat_setSymbols ...
Definition: udat.h:1487
UDAT_SHORT
Short style.
Definition: udat.h:166
UDAT_QUARTERS
The quarters, for example 1st Quarter.
Definition: udat.h:1435
udat_registerOpener
void udat_registerOpener(UDateFormatOpener opener, UErrorCode *status)
Register a provider factory.
UDisplayContext
UDisplayContext
Display context settings.
Definition: udisplaycontext.h:64
UDate
double UDate
Date and Time data type.
Definition: utypes.h:203
UDAT_NONE
No style.
Definition: udat.h:183
UDAT_STANDALONE_WEEKDAYS
The CLDR-style stand-alone "wide" weekday names.
Definition: udat.h:1426
UDAT_LONG
Long style.
Definition: udat.h:162
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_TIMEZONE_ISO_FIELD
FieldPosition selector for &#39;X&#39; field alignment, corresponding to the UCAL_ZONE_OFFSET and UCAL_DST_OF...
Definition: udat.h:768
UFieldPositionIterator
struct UFieldPositionIterator UFieldPositionIterator
C typedef for struct UFieldPositionIterator.
Definition: ufieldpositer.h:44
UDAT_SHORT_MONTHS
The short month names, for example Feb.
Definition: udat.h:1403
U_INTERNAL
#define U_INTERNAL
This is used to declare a function as an internal ICU C API.
Definition: umachine.h:119
udat_getCalendar
U_CAPI const UCalendar * udat_getCalendar(const UDateFormat *fmt)
Get the UCalendar associated with an UDateFormat.
udat_countAvailable
U_CAPI int32_t udat_countAvailable(void)
Determine how many locales have date/time formatting patterns available.
UDAT_PATTERN
Use the pattern given in the parameter to udat_open.
Definition: udat.h:190
UDAT_DEFAULT
Default style.
Definition: udat.h:168
UDAT_BOOLEAN_ATTRIBUTE_COUNT
One more than the highest normal UDateFormatBooleanAttribute value.
Definition: udat.h:931
U_HIDE_INTERNAL_API
#define U_HIDE_INTERNAL_API
Define this to 1 to request that internal API be "hidden".
Definition: utypes.h:87
udisplaycontext.h
C API: Display context types (enum values)
UDAT_JULIAN_DAY_FIELD
FieldPosition and UFieldPosition selector for &#39;g&#39; field alignment, corresponding to the UCAL_JULIAN_D...
Definition: udat.h:681
UDAT_PARSE_ALLOW_NUMERIC
indicates tolerance of numeric data when String data may be assumed.
Definition: udat.h:910
UDAT_RELATIVE
Bitfield for relative date.
Definition: udat.h:171
UDAT_DAY_OF_YEAR_FIELD
FieldPosition and UFieldPosition selector for &#39;D&#39; field alignment, corresponding to the UCAL_DAY_OF_Y...
Definition: udat.h:599
UDAT_STANDALONE_QUARTER_FIELD
FieldPosition selector for the "q" field alignment, corresponding to stand-alone quarters.
Definition: udat.h:736
UDAT_EXTENDED_YEAR_FIELD
FieldPosition and UFieldPosition selector for &#39;u&#39; field alignment, corresponding to the UCAL_EXTENDED...
Definition: udat.h:674
UDAT_RELATED_YEAR_FIELD
FieldPosition and UFieldPosition selector for &#39;r&#39; field alignment, no directly corresponding UCAL_ fi...
Definition: udat.h:784
UDAT_IGNORE
Definition: udat.h:194
UDAT_STANDALONE_DAY_FIELD
FieldPosition selector for &#39;c&#39; field alignment, corresponding to the UCAL_DOW_LOCAL field...
Definition: udat.h:710
UDAT_DATE_FIELD
FieldPosition and UFieldPosition selector for &#39;d&#39; field alignment, corresponding to the UCAL_DATE fie...
Definition: udat.h:538
UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH
indicates tolerance of pattern mismatch between input data and specified format pattern.
Definition: udat.h:922
UDAT_FULL
Full style.
Definition: udat.h:160
UDAT_TIME_SEPARATOR_FIELD
FieldPosition and UFieldPosition selector for time separator, no corresponding UCAL_ field...
Definition: udat.h:808
UDAT_YEAR_WOY_FIELD
FieldPosition and UFieldPosition selector for &#39;Y&#39; field alignment, corresponding to the UCAL_YEAR_WOY...
Definition: udat.h:660
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_DAY_OF_WEEK_IN_MONTH_FIELD
FieldPosition and UFieldPosition selector for &#39;F&#39; field alignment, corresponding to the UCAL_DAY_OF_W...
Definition: udat.h:606
UDateFormatSymbolType
UDateFormatSymbolType
The possible types of date format symbols.
Definition: udat.h:1397
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.
UDAT_MONTHS
The month names, for example February.
Definition: udat.h:1401
U_DEFINE_LOCAL_OPEN_POINTER
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition: localpointer.h:562
UNumberFormat
void * UNumberFormat
A number formatter.
Definition: unum.h:141
UFieldPosition
A struct representing a range of text containing a specific field.
Definition: umisc.h:34
UDAT_TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD
FieldPosition selector for &#39;O&#39; field alignment, corresponding to the UCAL_ZONE_OFFSET and UCAL_DST_OF...
Definition: udat.h:760
UDAT_MILLISECONDS_IN_DAY_FIELD
FieldPosition and UFieldPosition selector for &#39;A&#39; field alignment, corresponding to the UCAL_MILLISEC...
Definition: udat.h:688
UDAT_PARSE_ALLOW_WHITESPACE
indicates whether whitespace is allowed.
Definition: udat.h:904
udat_toCalendarDateField
U_CAPI UCalendarDateFields udat_toCalendarDateField(UDateFormatField field)
Maps from a UDateFormatField to the corresponding UCalendarDateFields.
localpointer.h
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
udat_adoptNumberFormat
U_CAPI void udat_adoptNumberFormat(UDateFormat *fmt, UNumberFormat *numberFormatToAdopt)
Adopt the UNumberFormat associated with an UDateFormat.
udat_getAvailable
U_CAPI const char * udat_getAvailable(int32_t localeIndex)
Get a locale for which date/time formatting patterns are available.
UDateFormat
void * UDateFormat
A date formatter.
Definition: udat.h:153
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_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.
UDAT_TIMEZONE_GENERIC_FIELD
FieldPosition and UFieldPosition selector for &#39;v&#39; field alignment, corresponding to the UCAL_ZONE_OFF...
Definition: udat.h:703
udat_isLenient
U_CAPI UBool udat_isLenient(const UDateFormat *fmt)
Determine if an UDateFormat will perform lenient parsing.
UDAT_ERAS
The era names, for example AD.
Definition: udat.h:1399
UDAT_CYCLIC_YEARS_WIDE
Cyclic year names (only supported for some calendars, and only for FORMAT usage; udat_setSymbols not ...
Definition: udat.h:1459
UDAT_WEEK_OF_MONTH_FIELD
FieldPosition and UFieldPosition selector for &#39;W&#39; field alignment, corresponding to the UCAL_WEEK_OF_...
Definition: udat.h:620
UDAT_WEEKDAYS
The CLDR-style format "wide" weekday names, for example Monday.
Definition: udat.h:1405
UDateFormatSymbols
struct UDateFormatSymbols UDateFormatSymbols
Date format symbols.
Definition: udat.h:1495
UDateFormatStyle
UDateFormatStyle
The possible date/time format styles.
Definition: udat.h:158
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
FieldPosition and UFieldPosition selector for &#39;E&#39; field alignment, corresponding to the UCAL_DAY_OF_W...
Definition: udat.h:592
UDAT_AM_PM_FIELD
FieldPosition and UFieldPosition selector for &#39;a&#39; field alignment, corresponding to the UCAL_AM_PM fi...
Definition: udat.h:627
LocalUDateFormatPointer
"Smart pointer" class, closes a UDateFormat via udat_close().
UDAT_SHORT_QUARTERS
The short quarter names, for example Q1.
Definition: udat.h:1437
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_HOUR0_FIELD
FieldPosition and UFieldPosition selector for &#39;K&#39; field alignment, corresponding to the UCAL_HOUR fie...
Definition: udat.h:645
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.
UChar
uint16_t UChar
The base type for UTF-16 code units and pointers.
Definition: umachine.h:378
udat_setLenient
U_CAPI void udat_setLenient(UDateFormat *fmt, UBool isLenient)
Specify whether an UDateFormat will perform lenient parsing.
udat_get2DigitYearStart
U_CAPI UDate udat_get2DigitYearStart(const UDateFormat *fmt, UErrorCode *status)
Get the year relative to which all 2-digit years are interpreted.
UDisplayContextType
UDisplayContextType
Display context types, for getting values of a particular setting.
Definition: udisplaycontext.h:27
UDAT_STANDALONE_QUARTERS
Standalone context versions of quarters.
Definition: udat.h:1439
UDateFormatField
UDateFormatField
FieldPosition and UFieldPosition selectors for format fields defined by DateFormat and UDateFormat...
Definition: udat.h:511
UDAT_ERA_FIELD
FieldPosition and UFieldPosition selector for &#39;G&#39; 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.
UErrorCode
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415
ULocDataLocaleType
ULocDataLocaleType
Constants for *_getLocale() Allow user to select whether she wants information on requested...
Definition: uloc.h:338
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_MINUTE_FIELD
FieldPosition and UFieldPosition selector for &#39;m&#39; field alignment, corresponding to the UCAL_MINUTE f...
Definition: udat.h:563
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_clone
U_CAPI UDateFormat * udat_clone(const UDateFormat *fmt, UErrorCode *status)
Open a copy of a UDateFormat.
UDAT_STANDALONE_SHORT_WEEKDAYS
The CLDR-style stand-alone "abbreviated" (not "short") weekday names.
Definition: udat.h:1431
UDAT_NARROW_MONTHS
The narrow month names, for example F.
Definition: udat.h:1418
UDAT_CYCLIC_YEARS_ABBREVIATED
Cyclic year names (only supported for some calendars, and only for FORMAT usage)
Definition: udat.h:1464
udat_getContext
U_CAPI UDisplayContext udat_getContext(const UDateFormat *fmt, UDisplayContextType type, UErrorCode *status)
Get the formatter&#39;s UDisplayContext value for the specified UDisplayContextType, such as UDISPCTX_TYP...
UDAT_TIMEZONE_ISO_LOCAL_FIELD
FieldPosition selector for &#39;x&#39; field alignment, corresponding to the UCAL_ZONE_OFFSET and UCAL_DST_OF...
Definition: udat.h:776
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.
ufieldpositer.h
C API: UFieldPositionIterator for use with format APIs.
UDAT_SECOND_FIELD
FieldPosition and UFieldPosition selector for &#39;s&#39; field alignment, corresponding to the UCAL_SECOND f...
Definition: udat.h:570
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
UDAT_SHORT_WEEKDAYS
The CLDR-style format "abbreviated" (not "short") weekday names, for example "Mon." For the CLDR-style format "short" weekday names, use UDAT_SHORTER_WEEKDAYS.
Definition: udat.h:1410
udat_close
U_CAPI void udat_close(UDateFormat *format)
Close a UDateFormat.
UDAT_TIMEZONE_FIELD
FieldPosition and UFieldPosition selector for &#39;z&#39; field alignment, corresponding to the UCAL_ZONE_OFF...
Definition: udat.h:653
UDAT_YEAR_FIELD
FieldPosition and UFieldPosition selector for &#39;y&#39; field alignment, corresponding to the UCAL_YEAR fie...
Definition: udat.h:524
UDAT_STANDALONE_MONTH_FIELD
FieldPosition selector for &#39;L&#39; field alignment, corresponding to the UCAL_MONTH field.
Definition: udat.h:718
UDAT_AM_PMS
The AM/PM names, for example AM.
Definition: udat.h:1412
udat_getNumberFormat
U_CAPI const UNumberFormat * udat_getNumberFormat(const UDateFormat *fmt)
Get the UNumberFormat associated with an UDateFormat.
UDAT_FIELD_COUNT
Number of FieldPosition and UFieldPosition selectors for DateFormat and UDateFormat.
Definition: udat.h:818
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.
UDAT_TIMEZONE_RFC_FIELD
FieldPosition and UFieldPosition selector for &#39;Z&#39; field alignment, corresponding to the UCAL_ZONE_OFF...
Definition: udat.h:696
UDAT_HOUR_OF_DAY0_FIELD
FieldPosition and UFieldPosition selector for &#39;H&#39; field alignment, corresponding to the UCAL_HOUR_OF_...
Definition: udat.h:556
udat_getBooleanAttribute
U_CAPI UBool udat_getBooleanAttribute(const UDateFormat *fmt, UDateFormatBooleanAttribute attr, UErrorCode *status)
Get a boolean attribute associated with a UDateFormat.
UDateFormatBooleanAttribute
UDateFormatBooleanAttribute
DateFormat boolean attributes.
Definition: udat.h:899
udat_getNumberFormatForField
U_CAPI const UNumberFormat * udat_getNumberFormatForField(const UDateFormat *fmt, UChar field)
Get the UNumberFormat for specific field associated with an UDateFormat.
UDAT_FRACTIONAL_SECOND_FIELD
FieldPosition and UFieldPosition selector for &#39;S&#39; field alignment, corresponding to the UCAL_MILLISEC...
Definition: udat.h:585
UDAT_HOUR1_FIELD
FieldPosition and UFieldPosition selector for &#39;h&#39; field alignment, corresponding to the UCAL_HOUR fie...
Definition: udat.h:636
UDAT_ZODIAC_NAMES_ABBREVIATED
Calendar zodiac names (only supported for some calendars, and only for FORMAT usage) ...
Definition: udat.h:1481
udat_unregisterOpener
UDateFormatOpener udat_unregisterOpener(UDateFormatOpener opener, UErrorCode *status)
Un-Register a provider factory.
UDAT_YEAR_NAME_FIELD
FieldPosition selector for "U" field alignment, corresponding to cyclic year names.
Definition: udat.h:752
udat_setBooleanAttribute
U_CAPI void udat_setBooleanAttribute(UDateFormat *fmt, UDateFormatBooleanAttribute attr, UBool newValue, UErrorCode *status)
Set a boolean attribute associated with a UDateFormat.
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.
UBool
int8_t UBool
The ICU boolean type.
Definition: umachine.h:261
unum.h
C API: Compatibility APIs for number formatting.
UDAT_MEDIUM
Medium style.
Definition: udat.h:164
udat_setCalendar
U_CAPI void udat_setCalendar(UDateFormat *fmt, const UCalendar *calendarToSet)
Set the UCalendar associated with an UDateFormat.
UDAT_STANDALONE_SHORTER_WEEKDAYS
Standalone version of UDAT_SHORTER_WEEKDAYS.
Definition: udat.h:1453