ICU 56.1
56.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
i18n
unicode
udat.h
Go to the documentation of this file.
1
/*
2
*******************************************************************************
3
* Copyright (C) 1996-2015, International Business Machines
4
* Corporation and others. All Rights Reserved.
5
*******************************************************************************
6
*/
7
8
#ifndef UDAT_H
9
#define UDAT_H
10
11
#include "
unicode/utypes.h
"
12
13
#if !UCONFIG_NO_FORMATTING
14
15
#include "
unicode/localpointer.h
"
16
#include "
unicode/ucal.h
"
17
#include "
unicode/unum.h
"
18
#include "
unicode/udisplaycontext.h
"
19
#include "
unicode/ufieldpositer.h
"
151
typedef
void
*
UDateFormat
;
152
156
typedef
enum
UDateFormatStyle
{
158
UDAT_FULL
,
160
UDAT_LONG
,
162
UDAT_MEDIUM
,
164
UDAT_SHORT
,
166
UDAT_DEFAULT
=
UDAT_MEDIUM
,
167
169
UDAT_RELATIVE
= (1 << 7),
170
171
UDAT_FULL_RELATIVE =
UDAT_FULL
|
UDAT_RELATIVE
,
172
173
UDAT_LONG_RELATIVE =
UDAT_LONG
|
UDAT_RELATIVE
,
174
175
UDAT_MEDIUM_RELATIVE =
UDAT_MEDIUM
|
UDAT_RELATIVE
,
176
177
UDAT_SHORT_RELATIVE =
UDAT_SHORT
|
UDAT_RELATIVE
,
178
179
181
UDAT_NONE
= -1,
182
188
UDAT_PATTERN
= -2,
189
190
#ifndef
U_HIDE_INTERNAL_API
192
UDAT_IGNORE
=
UDAT_PATTERN
193
#endif
/* U_HIDE_INTERNAL_API */
194
}
UDateFormatStyle
;
195
196
/* Skeletons for dates. */
197
202
#define UDAT_YEAR "y"
203
207
#define UDAT_QUARTER "QQQQ"
208
212
#define UDAT_ABBR_QUARTER "QQQ"
213
217
#define UDAT_YEAR_QUARTER "yQQQQ"
218
222
#define UDAT_YEAR_ABBR_QUARTER "yQQQ"
223
227
#define UDAT_MONTH "MMMM"
228
232
#define UDAT_ABBR_MONTH "MMM"
233
237
#define UDAT_NUM_MONTH "M"
238
242
#define UDAT_YEAR_MONTH "yMMMM"
243
247
#define UDAT_YEAR_ABBR_MONTH "yMMM"
248
252
#define UDAT_YEAR_NUM_MONTH "yM"
253
257
#define UDAT_DAY "d"
258
263
#define UDAT_YEAR_MONTH_DAY "yMMMMd"
264
269
#define UDAT_YEAR_ABBR_MONTH_DAY "yMMMd"
270
275
#define UDAT_YEAR_NUM_MONTH_DAY "yMd"
276
280
#define UDAT_WEEKDAY "EEEE"
281
285
#define UDAT_ABBR_WEEKDAY "E"
286
291
#define UDAT_YEAR_MONTH_WEEKDAY_DAY "yMMMMEEEEd"
292
297
#define UDAT_YEAR_ABBR_MONTH_WEEKDAY_DAY "yMMMEd"
298
303
#define UDAT_YEAR_NUM_MONTH_WEEKDAY_DAY "yMEd"
304
309
#define UDAT_MONTH_DAY "MMMMd"
310
315
#define UDAT_ABBR_MONTH_DAY "MMMd"
316
321
#define UDAT_NUM_MONTH_DAY "Md"
322
327
#define UDAT_MONTH_WEEKDAY_DAY "MMMMEEEEd"
328
333
#define UDAT_ABBR_MONTH_WEEKDAY_DAY "MMMEd"
334
339
#define UDAT_NUM_MONTH_WEEKDAY_DAY "MEd"
340
341
/* Skeletons for times. */
342
347
#define UDAT_HOUR "j"
348
352
#define UDAT_HOUR24 "H"
353
357
#define UDAT_MINUTE "m"
358
363
#define UDAT_HOUR_MINUTE "jm"
364
369
#define UDAT_HOUR24_MINUTE "Hm"
370
374
#define UDAT_SECOND "s"
375
381
#define UDAT_HOUR_MINUTE_SECOND "jms"
382
388
#define UDAT_HOUR24_MINUTE_SECOND "Hms"
389
394
#define UDAT_MINUTE_SECOND "ms"
395
396
/* Skeletons for time zones. */
397
405
#define UDAT_LOCATION_TZ "VVVV"
406
413
#define UDAT_GENERIC_TZ "vvvv"
414
421
#define UDAT_ABBR_GENERIC_TZ "v"
422
429
#define UDAT_SPECIFIC_TZ "zzzz"
430
437
#define UDAT_ABBR_SPECIFIC_TZ "z"
438
445
#define UDAT_ABBR_UTC_TZ "ZZZZ"
446
447
/* deprecated skeleton constants */
448
449
#ifndef U_HIDE_DEPRECATED_API
450
454
#define UDAT_STANDALONE_MONTH "LLLL"
455
459
#define UDAT_ABBR_STANDALONE_MONTH "LLL"
460
465
#define UDAT_HOUR_MINUTE_GENERIC_TZ "jmv"
466
470
#define UDAT_HOUR_MINUTE_TZ "jmz"
471
475
#define UDAT_HOUR_GENERIC_TZ "jv"
476
480
#define UDAT_HOUR_TZ "jz"
481
#endif
/* U_HIDE_DEPRECATED_API */
482
488
typedef
enum
UDateFormatField
{
494
UDAT_ERA_FIELD
= 0,
495
501
UDAT_YEAR_FIELD
= 1,
502
508
UDAT_MONTH_FIELD
= 2,
509
515
UDAT_DATE_FIELD
= 3,
516
524
UDAT_HOUR_OF_DAY1_FIELD
= 4,
525
533
UDAT_HOUR_OF_DAY0_FIELD
= 5,
534
540
UDAT_MINUTE_FIELD
= 6,
541
547
UDAT_SECOND_FIELD
= 7,
548
562
UDAT_FRACTIONAL_SECOND_FIELD
= 8,
563
569
UDAT_DAY_OF_WEEK_FIELD
= 9,
570
576
UDAT_DAY_OF_YEAR_FIELD
= 10,
577
583
UDAT_DAY_OF_WEEK_IN_MONTH_FIELD
= 11,
584
590
UDAT_WEEK_OF_YEAR_FIELD
= 12,
591
597
UDAT_WEEK_OF_MONTH_FIELD
= 13,
598
604
UDAT_AM_PM_FIELD
= 14,
605
613
UDAT_HOUR1_FIELD
= 15,
614
622
UDAT_HOUR0_FIELD
= 16,
623
630
UDAT_TIMEZONE_FIELD
= 17,
631
637
UDAT_YEAR_WOY_FIELD
= 18,
638
644
UDAT_DOW_LOCAL_FIELD
= 19,
645
651
UDAT_EXTENDED_YEAR_FIELD
= 20,
652
658
UDAT_JULIAN_DAY_FIELD
= 21,
659
665
UDAT_MILLISECONDS_IN_DAY_FIELD
= 22,
666
673
UDAT_TIMEZONE_RFC_FIELD
= 23,
674
680
UDAT_TIMEZONE_GENERIC_FIELD
= 24,
687
UDAT_STANDALONE_DAY_FIELD
= 25,
688
695
UDAT_STANDALONE_MONTH_FIELD
= 26,
696
704
UDAT_QUARTER_FIELD
= 27,
705
713
UDAT_STANDALONE_QUARTER_FIELD
= 28,
714
720
UDAT_TIMEZONE_SPECIAL_FIELD
= 29,
721
729
UDAT_YEAR_NAME_FIELD
= 30,
730
737
UDAT_TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD
= 31,
738
745
UDAT_TIMEZONE_ISO_FIELD
= 32,
746
753
UDAT_TIMEZONE_ISO_LOCAL_FIELD
= 33,
754
755
#ifndef U_HIDE_INTERNAL_API
756
761
UDAT_RELATED_YEAR_FIELD
= 34,
762
#endif
/* U_HIDE_INTERNAL_API */
763
764
#ifndef U_HIDE_DRAFT_API
765
771
UDAT_TIME_SEPARATOR_FIELD
= 35,
772
#endif
/* U_HIDE_DRAFT_API */
773
782
UDAT_FIELD_COUNT
= 36
783
784
}
UDateFormatField
;
785
786
787
#ifndef U_HIDE_INTERNAL_API
788
793
#define UDAT_HAS_PATTERN_CHAR_FOR_TIME_SEPARATOR 0
794
#endif
/* U_HIDE_INTERNAL_API */
795
796
805
U_STABLE
UCalendarDateFields
U_EXPORT2
806
udat_toCalendarDateField
(
UDateFormatField
field);
807
808
837
U_STABLE
UDateFormat
* U_EXPORT2
838
udat_open
(
UDateFormatStyle
timeStyle,
839
UDateFormatStyle
dateStyle,
840
const
char
*locale,
841
const
UChar
*tzID,
842
int32_t tzIDLength,
843
const
UChar
*pattern,
844
int32_t patternLength,
845
UErrorCode
*status);
846
847
854
U_STABLE
void
U_EXPORT2
855
udat_close
(
UDateFormat
* format);
856
857
863
typedef
enum
UDateFormatBooleanAttribute
{
868
UDAT_PARSE_ALLOW_WHITESPACE
= 0,
874
UDAT_PARSE_ALLOW_NUMERIC
= 1,
875
#ifndef U_HIDE_DRAFT_API
876
881
UDAT_PARSE_PARTIAL_LITERAL_MATCH
= 2,
887
UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH
= 3,
888
#endif
/* U_HIDE_DRAFT_API */
889
893
UDAT_BOOLEAN_ATTRIBUTE_COUNT
= 4
894
}
UDateFormatBooleanAttribute
;
895
906
U_STABLE
UBool
U_EXPORT2
907
udat_getBooleanAttribute
(
const
UDateFormat
* fmt,
UDateFormatBooleanAttribute
attr,
UErrorCode
* status);
908
919
U_STABLE
void
U_EXPORT2
920
udat_setBooleanAttribute
(
UDateFormat
*fmt,
UDateFormatBooleanAttribute
attr,
UBool
newValue,
UErrorCode
* status);
921
922
923
924
#if U_SHOW_CPLUSPLUS_API
925
926
U_NAMESPACE_BEGIN
927
937
U_DEFINE_LOCAL_OPEN_POINTER
(
LocalUDateFormatPointer
,
UDateFormat
,
udat_close
);
938
939
U_NAMESPACE_END
940
941
#endif
942
951
U_STABLE
UDateFormat
* U_EXPORT2
952
udat_clone
(
const
UDateFormat
*fmt,
953
UErrorCode
*status);
954
973
U_STABLE
int32_t U_EXPORT2
974
udat_format
(
const
UDateFormat
* format,
975
UDate
dateToFormat,
976
UChar
* result,
977
int32_t resultLength,
978
UFieldPosition
* position,
979
UErrorCode
* status);
980
981
#ifndef U_HIDE_DRAFT_API
982
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
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
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
1112
U_STABLE
UDate
U_EXPORT2
1113
udat_parse
(
const
UDateFormat
* format,
1114
const
UChar
* text,
1115
int32_t textLength,
1116
int32_t *parsePos,
1117
UErrorCode
*status);
1118
1140
U_STABLE
void
U_EXPORT2
1141
udat_parseCalendar
(
const
UDateFormat
* format,
1142
UCalendar
* calendar,
1143
const
UChar
* text,
1144
int32_t textLength,
1145
int32_t *parsePos,
1146
UErrorCode
*status);
1147
1157
U_STABLE
UBool
U_EXPORT2
1158
udat_isLenient
(
const
UDateFormat
* fmt);
1159
1169
U_STABLE
void
U_EXPORT2
1170
udat_setLenient
(
UDateFormat
* fmt,
1171
UBool
isLenient);
1172
1182
U_STABLE
const
UCalendar
* U_EXPORT2
1183
udat_getCalendar
(
const
UDateFormat
* fmt);
1184
1194
U_STABLE
void
U_EXPORT2
1195
udat_setCalendar
(
UDateFormat
* fmt,
1196
const
UCalendar
* calendarToSet);
1197
1207
U_STABLE
const
UNumberFormat
* U_EXPORT2
1208
udat_getNumberFormat
(
const
UDateFormat
* fmt);
1209
1219
U_STABLE
const
UNumberFormat
* U_EXPORT2
1220
udat_getNumberFormatForField
(
const
UDateFormat
* fmt,
UChar
field);
1221
1237
U_STABLE
void
U_EXPORT2
1238
udat_adoptNumberFormatForFields
(
UDateFormat
* fmt,
1239
const
UChar
* fields,
1240
UNumberFormat
* numberFormatToSet,
1241
UErrorCode
* status);
1254
U_STABLE
void
U_EXPORT2
1255
udat_setNumberFormat
(
UDateFormat
* fmt,
1256
const
UNumberFormat
* numberFormatToSet);
1266
U_STABLE
void
U_EXPORT2
1267
udat_adoptNumberFormat
(
UDateFormat
* fmt,
1268
UNumberFormat
* numberFormatToAdopt);
1278
U_STABLE
const
char
* U_EXPORT2
1279
udat_getAvailable
(int32_t localeIndex);
1280
1289
U_STABLE
int32_t U_EXPORT2
1290
udat_countAvailable
(
void
);
1291
1302
U_STABLE
UDate
U_EXPORT2
1303
udat_get2DigitYearStart
(
const
UDateFormat
*fmt,
1304
UErrorCode
*status);
1305
1316
U_STABLE
void
U_EXPORT2
1317
udat_set2DigitYearStart
(
UDateFormat
*fmt,
1318
UDate
d,
1319
UErrorCode
*status);
1320
1333
U_STABLE
int32_t U_EXPORT2
1334
udat_toPattern
(
const
UDateFormat
*fmt,
1335
UBool
localized,
1336
UChar
*result,
1337
int32_t resultLength,
1338
UErrorCode
*status);
1339
1350
U_STABLE
void
U_EXPORT2
1351
udat_applyPattern
(
UDateFormat
*format,
1352
UBool
localized,
1353
const
UChar
*pattern,
1354
int32_t patternLength);
1355
1360
typedef
enum
UDateFormatSymbolType
{
1362
UDAT_ERAS
,
1364
UDAT_MONTHS
,
1366
UDAT_SHORT_MONTHS
,
1368
UDAT_WEEKDAYS
,
1373
UDAT_SHORT_WEEKDAYS
,
1375
UDAT_AM_PMS
,
1377
UDAT_LOCALIZED_CHARS
,
1379
UDAT_ERA_NAMES
,
1381
UDAT_NARROW_MONTHS
,
1383
UDAT_NARROW_WEEKDAYS
,
1385
UDAT_STANDALONE_MONTHS
,
1386
UDAT_STANDALONE_SHORT_MONTHS,
1387
UDAT_STANDALONE_NARROW_MONTHS,
1389
UDAT_STANDALONE_WEEKDAYS
,
1394
UDAT_STANDALONE_SHORT_WEEKDAYS
,
1396
UDAT_STANDALONE_NARROW_WEEKDAYS
,
1398
UDAT_QUARTERS
,
1400
UDAT_SHORT_QUARTERS
,
1402
UDAT_STANDALONE_QUARTERS
,
1403
UDAT_STANDALONE_SHORT_QUARTERS,
1411
UDAT_SHORTER_WEEKDAYS
,
1416
UDAT_STANDALONE_SHORTER_WEEKDAYS
,
1422
UDAT_CYCLIC_YEARS_WIDE
,
1427
UDAT_CYCLIC_YEARS_ABBREVIATED
,
1433
UDAT_CYCLIC_YEARS_NARROW
,
1439
UDAT_ZODIAC_NAMES_WIDE
,
1444
UDAT_ZODIAC_NAMES_ABBREVIATED
,
1450
UDAT_ZODIAC_NAMES_NARROW
1451
}
UDateFormatSymbolType
;
1452
1453
struct
UDateFormatSymbols
;
1458
typedef
struct
UDateFormatSymbols
UDateFormatSymbols
;
1459
1476
U_STABLE
int32_t U_EXPORT2
1477
udat_getSymbols
(
const
UDateFormat
*fmt,
1478
UDateFormatSymbolType
type,
1479
int32_t symbolIndex,
1480
UChar
*result,
1481
int32_t resultLength,
1482
UErrorCode
*status);
1483
1496
U_STABLE
int32_t U_EXPORT2
1497
udat_countSymbols
(
const
UDateFormat
*fmt,
1498
UDateFormatSymbolType
type);
1499
1515
U_STABLE
void
U_EXPORT2
1516
udat_setSymbols
(
UDateFormat
*format,
1517
UDateFormatSymbolType
type,
1518
int32_t symbolIndex,
1519
UChar
*value,
1520
int32_t valueLength,
1521
UErrorCode
*status);
1522
1532
U_STABLE
const
char
* U_EXPORT2
1533
udat_getLocaleByType
(
const
UDateFormat
*fmt,
1534
ULocDataLocaleType
type,
1535
UErrorCode
* status);
1536
1545
U_DRAFT
void
U_EXPORT2
1546
udat_setContext
(
UDateFormat
* fmt,
UDisplayContext
value,
UErrorCode
* status);
1547
1557
U_STABLE
UDisplayContext
U_EXPORT2
1558
udat_getContext
(
const
UDateFormat
* fmt,
UDisplayContextType
type,
UErrorCode
* status);
1559
1560
#ifndef U_HIDE_INTERNAL_API
1561
1572
U_INTERNAL
int32_t U_EXPORT2
1573
udat_toPatternRelativeDate
(
const
UDateFormat
*fmt,
1574
UChar
*result,
1575
int32_t resultLength,
1576
UErrorCode
*status);
1577
1589
U_INTERNAL
int32_t U_EXPORT2
1590
udat_toPatternRelativeTime
(
const
UDateFormat
*fmt,
1591
UChar
*result,
1592
int32_t resultLength,
1593
UErrorCode
*status);
1594
1607
U_INTERNAL
void
U_EXPORT2
1608
udat_applyPatternRelative
(
UDateFormat
*format,
1609
const
UChar
*datePattern,
1610
int32_t datePatternLength,
1611
const
UChar
*timePattern,
1612
int32_t timePatternLength,
1613
UErrorCode
*status);
1614
1619
typedef
UDateFormat
* (U_EXPORT2 *
UDateFormatOpener
) (
UDateFormatStyle
timeStyle,
1620
UDateFormatStyle
dateStyle,
1621
const
char
*locale,
1622
const
UChar
*tzID,
1623
int32_t tzIDLength,
1624
const
UChar
*pattern,
1625
int32_t patternLength,
1626
UErrorCode
*status);
1627
1632
U_INTERNAL
void
U_EXPORT2
1633
udat_registerOpener
(
UDateFormatOpener
opener,
UErrorCode
*status);
1634
1639
U_INTERNAL
UDateFormatOpener
U_EXPORT2
1640
udat_unregisterOpener
(
UDateFormatOpener
opener,
UErrorCode
*status);
1641
#endif
/* U_HIDE_INTERNAL_API */
1642
1643
1644
#endif
/* #if !UCONFIG_NO_FORMATTING */
1645
1646
#endif
Generated on Wed Oct 7 2015 21:17:57 for ICU 56.1 by
1.8.1.2