• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.intl (国际化-Intl)
2
3 本模块提供基础的应用国际化能力,包括时间日期格式化、数字格式化、排序等,相关接口在ECMA 402标准中定义。
4[I18N模块](js-apis-i18n.md)提供其他非ECMA 402定义的国际化接口,与本模块共同使用可提供完整地国际化支持能力。
5
6>  **说明:**
7>  - 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8>
9>  - Intl模块包含国际化能力基础接口(在ECMA 402中定义),包括时间日期格式化、数字格式化、排序等,国际化增强能力请参考[I18N模块](js-apis-i18n.md)。
10
11
12## 导入模块
13
14```js
15import Intl from '@ohos.intl';
16```
17未正确导入包可能产生不明确的接口行为。
18
19## Locale
20
21
22### 属性
23
24**系统能力**:SystemCapability.Global.I18n
25
26| 名称              | 类型      | 可读   | 可写   | 说明                                       |
27| --------------- | ------- | ---- | ---- | ---------------------------------------- |
28| language        | string  | 是    | 否    | 与区域设置关联的语, 如:zh。                    |
29| script          | string  | 是    | 否    | 语言的书写方式,如:Hans。                          |
30| region          | string  | 是    | 否    | 与区域设置相关的地区,如:CN。                         |
31| baseName        | string  | 是    | 否    | Locale的基本核心信息(由语言脚本与地区组成),如:zh-Hans-CN。  |
32| caseFirst       | string  | 是    | 否    | 区域的整理规则是否考虑大小写,取值包括:"upper", "lower", "false"。 |
33| calendar        | string  | 是    | 否    | 区域的日历信息,取值包括:"buddhist", "chinese", "coptic","dangi", "ethioaa", "ethiopic", "gregory", "hebrew", "indian", "islamic", "islamic-umalqura", "islamic-tbla", "islamic-civil", "islamic-rgsa", "iso8601", "japanese", "persian", "roc", "islamicc"。 |
34| collation       | string  | 是    | 否    | 区域的排序规则,取值包括:"big5han", "compat", "dict", "direct", "ducet", "eor", "gb2312", "phonebk", "phonetic", "pinyin", "reformed", "searchjl", "stroke", "trad", "unihan", "zhuyin"。 |
35| hourCycle       | string  | 是    | 否    | 区域的时制信息,取值包括:"h12", "h23", "h11", "h24"。 |
36| numberingSystem | string  | 是    | 否    | 区域使用的数字系统,取值包括:"adlm", "ahom", "arab", "arabext", "bali", "beng", "bhks", "brah", "cakm", "cham", "deva", "diak", "fullwide", "gong", "gonm", "gujr", "guru", "hanidec", "hmng", "hmnp", "java", "kali", "khmr", "knda", "lana", "lanatham", "laoo", "latn", "lepc", "limb", "mathbold", "mathdbl", "mathmono", "mathsanb", "mathsans", "mlym", "modi", "mong", "mroo", "mtei", "mymr", "mymrshan", "mymrtlng", "newa", "nkoo", "olck", "orya", "osma", "rohg", "saur", "segment", "shrd", "sind", "sinh", "sora", "sund", "takr", "talu", "tamldec", "telu", "thai", "tibt", "tirh", "vaii", "wara", "wcho"。 |
37| numeric         | boolean | 是    | 否    | 是否对数字字符具有特殊的排序规则处理。                      |
38
39
40### constructor<sup>8+</sup>
41
42constructor()
43
44创建区域对象
45
46**系统能力**:SystemCapability.Global.I18n
47
48**示例:**
49  ```js
50  // 默认构造函数使用系统当前locale创建Locale对象
51  let locale = new Intl.Locale();
52  // 返回系统当前localel
53  let localeID = locale.toString();
54  ```
55
56
57### constructor
58
59constructor(locale: string, options?: LocaleOptions)
60
61创建区域对象
62
63**系统能力**:SystemCapability.Global.I18n
64
65**参数:**
66
67| 参数名                  | 类型                               | 必填   | 说明                           |
68| -------------------- | -------------------------------- | ---- | ---------------------------- |
69| locale               | string                           | 是    | 包含区域信息的字符串,包括语言以、脚本、国家或地区。语言、脚本、国家或地区的国际标准及组合方式请见[Intl开发指导](../../internationalization/intl-guidelines.md#设置区域信息) |
70| options<sup>9+</sup> | [LocaleOptions](#localeoptions9) | 否    | 用于创建区域对象的选项。                 |
71
72**示例:**
73  ```js
74  // 创建 "zh-CN" Locale对象
75  let locale = new Intl.Locale("zh-CN");
76  let localeID = locale.toString(); // localeID = "zh-CN"
77  ```
78
79
80### toString
81
82toString(): string
83
84获取区域对象的字符串表示
85
86**系统能力**:SystemCapability.Global.I18n
87
88**返回值:**
89
90| 类型     | 说明          |
91| ------ | ----------- |
92| string | 区域对象的字符串表示。 |
93
94**示例:**
95  ```js
96  // 创建 "en-GB" Locale对象
97  let locale = new Intl.Locale("en-GB");
98  let localeID = locale.toString(); // localeID = "en-GB"
99  ```
100
101
102### maximize
103
104maximize(): Locale
105
106最大化区域信息,若缺少脚本与地区信息,则补齐。
107
108**系统能力**:SystemCapability.Global.I18n
109
110**返回值:**
111
112| 类型                | 说明         |
113| ----------------- | ---------- |
114| [Locale](#locale) | 最大化后的区域对象。 |
115
116**示例:**
117  ```js
118  // 创建 "zh" Locale对象
119  let locale = new Intl.Locale("zh");
120  // 补齐Locale对象的脚本和地区
121  let maximizedLocale = locale.maximize();
122  let localeID = maximizedLocale.toString(); // localeID = "zh-Hans-CN"
123
124  // 创建 "en-US" Locale对象
125  locale = new Intl.Locale("en-US");
126  // 补齐Locale对象的脚本
127  maximizedLocale = locale.maximize();
128  localeID = maximizedLocale.toString(); // localeID = "en-Latn-US"
129  ```
130
131
132### minimize
133
134minimize(): Locale
135
136最小化区域信息,若包含脚本与地区信息,则去除。
137
138**系统能力**:SystemCapability.Global.I18n
139
140**返回值:**
141
142| 类型                | 说明         |
143| ----------------- | ---------- |
144| [Locale](#locale) | 最小化后的区域对象。 |
145
146**示例:**
147  ```js
148  // 创建 "zh-Hans-CN" Locale对象
149  let locale = new Intl.Locale("zh-Hans-CN");
150  // 去除Locale对象的脚本和地区
151  let minimizedLocale = locale.minimize();
152  let localeID = minimizedLocale.toString(); // localeID = "zh"
153
154  // 创建 "en-US" Locale对象
155  locale = new Intl.Locale("en-US");
156  // 去除Locale对象的地区
157  minimizedLocale = locale.minimize();
158  localeID = minimizedLocale.toString(); // localeID = "en"
159  ```
160
161
162## LocaleOptions<sup>9+</sup>
163
164表示区域初始化选项。
165
166**系统能力**:SystemCapability.Global.I18n
167
168| 名称              | 类型      | 可读   | 可写   | 说明                                       |
169| --------------- | ------- | ---- | ---- | ---------------------------------------- |
170| calendar        | string  | 是    | 是    | 日历参数,如:"buddhist", "chinese", "coptic", "dangi", "ethioaa", "ethiopic", "gregory", "hebrew", "indian", "islamic", "islamic-umalqura", "islamic-tbla", "islamic-civil", "islamic-rgsa", "iso8601", "japanese", "persian", "roc", "islamicc"。 |
171| collation       | string  | 是    | 是    | 排序参数,取值包括:"big5han", "compat", "dict", "direct", "ducet", "emoji", "eor", "gb2312", "phonebk", "phonetic", "pinyin", "reformed	", "search", "searchjl", "standard", "stroke", "trad", "unihan", "zhuyin"。 |
172| hourCycle       | string  | 是    | 是    | 时制格式,取值包括:"h11",&nbsp;"h12",&nbsp;"h23",&nbsp;"h24"。 |
173| numberingSystem | string  | 是    | 是    | 数字系统,取值包括:"adlm",&nbsp;"ahom",&nbsp;"arab",&nbsp;"arabext",&nbsp;"bali",&nbsp;"beng",&nbsp;"bhks",&nbsp;"brah",&nbsp;"cakm",&nbsp;"cham",&nbsp;"deva",&nbsp;"diak",&nbsp;"fullwide",&nbsp;"gong",&nbsp;"gonm",&nbsp;"gujr",&nbsp;"guru",&nbsp;"hanidec",&nbsp;"hmng",&nbsp;"hmnp",&nbsp;"java",&nbsp;"kali",&nbsp;"khmr",&nbsp;"knda",&nbsp;"lana",&nbsp;"lanatham",&nbsp;"laoo",&nbsp;"latn",&nbsp;"lepc",&nbsp;"limb",&nbsp;"mathbold",&nbsp;"mathdbl",&nbsp;"mathmono",&nbsp;"mathsanb",&nbsp;"mathsans",&nbsp;"mlym",&nbsp;"modi",&nbsp;"mong",&nbsp;"mroo",&nbsp;"mtei",&nbsp;"mymr",&nbsp;"mymrshan",&nbsp;"mymrtlng",&nbsp;"newa",&nbsp;"nkoo",&nbsp;"olck",&nbsp;"orya",&nbsp;"osma",&nbsp;"rohg",&nbsp;"saur",&nbsp;"segment",&nbsp;"shrd",&nbsp;"sind",&nbsp;"sinh",&nbsp;"sora",&nbsp;"sund",&nbsp;"takr",&nbsp;"talu",&nbsp;"tamldec",&nbsp;"telu",&nbsp;"thai",&nbsp;"tibt",&nbsp;"tirh",&nbsp;"vaii",&nbsp;"wara",&nbsp;"wcho"。 |
174| numeric         | boolean | 是    | 是    | 是否使用12小时制。                               |
175| caseFirst       | string  | 是    | 是    | 表示大写、小写的排序顺序,取值范围:"upper",&nbsp;"lower",&nbsp;"false"。 |
176
177
178## DateTimeFormat
179
180
181### constructor<sup>8+</sup>
182
183constructor()
184
185创建时间日期格式化对象。
186
187**系统能力**:SystemCapability.Global.I18n
188
189**示例:**
190  ```js
191  // 使用系统当前locale创建DateTimeFormat对象
192  let datefmt= new Intl.DateTimeFormat();
193  ```
194
195
196### constructor
197
198constructor(locale: string | Array&lt;string&gt;, options?: DateTimeOptions)
199
200创建时间日期格式化对象。
201
202**系统能力**:SystemCapability.Global.I18n
203
204**参数:**
205
206| 参数名                  | 类型                                   | 必填   | 说明                           |
207| -------------------- | ------------------------------------ | ---- | ---------------------------- |
208| locale               | string \| Array&lt;string&gt;        | 是    | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 |
209| options<sup>9+</sup> | [DateTimeOptions](#datetimeoptions9) | 否    | 用于创建时间日期格式化的选项。              |
210
211**示例:**
212  ```js
213  // 使用 "zh-CN" locale创建DateTimeFormat对象,日期风格为full,时间风格为medium
214  let datefmt= new Intl.DateTimeFormat("zh-CN", { dateStyle: 'full', timeStyle: 'medium' });
215  ```
216
217
218**示例:**
219  ```js
220  // 使用 ["ban", "zh"] locale列表创建DateTimeFormat对象,因为ban为非法LocaleID,因此使用zh Locale创建DateTimeFormat对象
221  let datefmt= new Intl.DateTimeFormat(["ban", "zh"], { dateStyle: 'full', timeStyle: 'medium' });
222  ```
223
224
225### format
226
227format(date: Date): string
228
229格式化时间日期字符串。
230
231**系统能力**:SystemCapability.Global.I18n
232
233**参数:**
234
235| 参数名  | 类型   | 必填   | 说明      |
236| ---- | ---- | ---- | ------- |
237| date | Date | 是    | 时间日期对象。 |
238
239**返回值:**
240
241| 类型     | 说明           |
242| ------ | ------------ |
243| string | 格式化后的时间日期字符串 |
244
245**示例:**
246  ```js
247  let date = new Date(2021, 11, 17, 3, 24, 0);
248  // 使用 en-GB locale创建DateTimeFormat对象
249  let datefmt = new Intl.DateTimeFormat("en-GB");
250  let formattedDate = datefmt.format(date); // formattedDate "17/12/2021"
251
252  // 使用 en-GB locale创建DateTimeFormat对象,dateStyle设置为full,timeStyle设置为medium
253  datefmt = new Intl.DateTimeFormat("en-GB", { dateStyle: 'full', timeStyle: 'medium' });
254  formattedDate = datefmt.format(date); // formattedDate "Friday, 17 December 2021 at 03:24:00"
255  ```
256
257
258### formatRange
259
260formatRange(startDate: Date, endDate: Date): string
261
262格式化时间日期段字符串。
263
264**系统能力**:SystemCapability.Global.I18n
265
266**参数:**
267
268| 参数名       | 类型   | 必填   | 说明       |
269| --------- | ---- | ---- | -------- |
270| startDate | Date | 是    | 起始的时间日期。 |
271| endDate   | Date | 是    | 结束的时间日期。 |
272
273**返回值:**
274
275| 类型     | 说明             |
276| ------ | -------------- |
277| string | 格式化后的时间日期段字符串。 |
278
279**示例:**
280  ```js
281  let startDate = new Date(2021, 11, 17, 3, 24, 0);
282  let endDate = new Date(2021, 11, 18, 3, 24, 0);
283  // 使用 en-GB locale创建DateTimeFormat对象
284  let datefmt = new Intl.DateTimeFormat("en-GB");
285  let formattedDateRange = datefmt.formatRange(startDate, endDate); // formattedDateRange = "17/12/2021-18/12/2021"
286  ```
287
288
289### resolvedOptions
290
291resolvedOptions(): DateTimeOptions
292
293获取DateTimeFormat对象的格式化选项。
294
295**系统能力**:SystemCapability.Global.I18n
296
297**返回值:**
298
299| 类型                                   | 说明                            |
300| ------------------------------------ | ----------------------------- |
301| [DateTimeOptions](#datetimeoptions9) | DateTimeFormat&nbsp;对象的格式化选项。 |
302
303**示例:**
304  ```js
305  let datefmt = new Intl.DateTimeFormat("en-GB", { dateStyle: 'full', timeStyle: 'medium' });
306  // 返回DateTimeFormat对象的配置项
307  let options = datefmt.resolvedOptions();
308  let dateStyle = options.dateStyle; // dateStyle = "full"
309  let timeStyle = options.timeStyle; // timeStyle = "medium"
310  ```
311
312
313## DateTimeOptions<sup>9+</sup>
314
315表示时间日期格式化选项。
316
317**系统能力**:SystemCapability.Global.I18n
318
319| 名称              | 类型      | 可读   | 可写   | 说明                                       |
320| --------------- | ------- | ---- | ---- | ---------------------------------------- |
321| locale          | string  | 是    | 否    | 区域参数,&nbsp;如:zh-Hans-CN。                 |
322| dateStyle       | string  | 是    | 是    | 日期显示格式,取值包括:"long",&nbsp;"short",&nbsp;"medium",&nbsp;"full"。 |
323| timeStyle       | string  | 是    | 是    | 时间显示格式,取值包括:"long",&nbsp;"short",&nbsp;"medium",&nbsp;"full"。 |
324| hourCycle       | string  | 是    | 是    | 时制格式,取值包括:"h11",&nbsp;"h12",&nbsp;"h23",&nbsp;"h24"。 |
325| timeZone        | string  | 是    | 是    | 使用的时区(合法的IANA时区ID)。                      |
326| numberingSystem | string  | 是    | 是    | 数字系统,取值包括:"adlm",&nbsp;"ahom",&nbsp;"arab",&nbsp;"arabext",&nbsp;"bali",&nbsp;"beng",&nbsp;"bhks",&nbsp;"brah",&nbsp;"cakm",&nbsp;"cham",&nbsp;"deva",&nbsp;"diak",&nbsp;"fullwide",&nbsp;"gong",&nbsp;"gonm",&nbsp;"gujr",&nbsp;"guru",&nbsp;"hanidec",&nbsp;"hmng",&nbsp;"hmnp",&nbsp;"java",&nbsp;"kali",&nbsp;"khmr",&nbsp;"knda",&nbsp;"lana",&nbsp;"lanatham",&nbsp;"laoo",&nbsp;"latn",&nbsp;"lepc",&nbsp;"limb",&nbsp;"mathbold",&nbsp;"mathdbl",&nbsp;"mathmono",&nbsp;"mathsanb",&nbsp;"mathsans",&nbsp;"mlym",&nbsp;"modi",&nbsp;"mong",&nbsp;"mroo",&nbsp;"mtei",&nbsp;"mymr",&nbsp;"mymrshan",&nbsp;"mymrtlng",&nbsp;"newa",&nbsp;"nkoo",&nbsp;"olck",&nbsp;"orya",&nbsp;"osma",&nbsp;"rohg",&nbsp;"saur",&nbsp;"segment",&nbsp;"shrd",&nbsp;"sind",&nbsp;"sinh",&nbsp;"sora",&nbsp;"sund",&nbsp;"takr",&nbsp;"talu",&nbsp;"tamldec",&nbsp;"telu",&nbsp;"thai",&nbsp;"tibt",&nbsp;"tirh",&nbsp;"vaii",&nbsp;"wara",&nbsp;"wcho"。 |
327| hour12          | boolean | 是    | 是    | 是否使用12小时制。                               |
328| weekday         | string  | 是    | 是    | 工作日的显示格式,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 |
329| era             | string  | 是    | 是    | 时代的显示格式,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 |
330| year            | string  | 是    | 是    | 年份的显示格式,取值包括:"numeric",&nbsp;"2-digit"。  |
331| month           | string  | 是    | 是    | 月份的显示格式,取值包括:"numeric",&nbsp;"2-digit",&nbsp;"long",&nbsp;"short",&nbsp;"narrow"。 |
332| day             | string  | 是    | 是    | 日期的显示格式,取值包括:"numeric",&nbsp;"2-digit"。  |
333| hour            | string  | 是    | 是    | 小时的显示格式,取值包括:"numeric",&nbsp;"2-digit"。  |
334| minute          | string  | 是    | 是    | 分钟的显示格式,取值包括:"numeric",&nbsp;"2-digit"。  |
335| second          | string  | 是    | 是    | 秒钟的显示格式,取值包括:"numeric",&nbsp;"2-digit"。  |
336| timeZoneName    | string  | 是    | 是    | 时区名称的本地化表示。                              |
337| dayPeriod       | string  | 是    | 是    | 时段的显示格式,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 |
338| localeMatcher   | string  | 是    | 是    | 要使用的区域匹配算法,取值包括:"lookup",&nbsp;"best&nbsp;fit"。 |
339| formatMatcher   | string  | 是    | 是    | 要使用的格式匹配算法,取值包括:"basic",&nbsp;"best&nbsp;fit"。 |
340
341
342## NumberFormat
343
344
345### constructor<sup>8+</sup>
346
347constructor()
348
349创建数字格式化对象。
350
351**系统能力**:SystemCapability.Global.I18n
352
353**示例:**
354  ```js
355  // 使用系统当前locale创建NumberFormat对象
356  let numfmt = new Intl.NumberFormat();
357  ```
358
359
360### constructor
361
362constructor(locale: string | Array&lt;string&gt;, options?: NumberOptions)
363
364创建数字格式化对象。
365
366**系统能力**:SystemCapability.Global.I18n
367
368**参数:**
369
370| 参数名                  | 类型                               | 必填   | 说明                           |
371| -------------------- | -------------------------------- | ---- | ---------------------------- |
372| locale               | string \| Array&lt;string&gt;    | 是    | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 |
373| options<sup>9+</sup> | [NumberOptions](#numberoptions9) | 否    | 用于创建数字格式化的选项。                |
374
375**示例:**
376  ```js
377  // 使用 en-GB locale创建NumberFormat对象,style设置为decimal,notation设置为scientific
378  let numfmt = new Intl.NumberFormat("en-GB", {style:'decimal', notation:"scientific"});
379  ```
380
381
382### format
383
384format(number: number): string;
385
386格式化数字字符串。
387
388**系统能力**:SystemCapability.Global.I18n
389
390**参数:**
391
392| 参数名    | 类型     | 必填   | 说明   |
393| ------ | ------ | ---- | ---- |
394| number | number | 是    | 数字对象 |
395
396**返回值:**
397
398| 类型     | 说明         |
399| ------ | ---------- |
400| string | 格式化后的数字字符串 |
401
402
403**示例:**
404  ```js
405  // 使用 ["en-GB", "zh"] locale列表创建NumberFormat对象,因为en-GB为合法LocaleID,因此使用en-GB创建NumberFormat对象
406  let numfmt = new Intl.NumberFormat(["en-GB", "zh"], {style:'decimal', notation:"scientific"});
407  let formattedNumber = numfmt.format(1223); // formattedNumber = 1.223E3
408  ```
409
410
411### resolvedOptions
412
413resolvedOptions(): NumberOptions
414
415获取NumberFormat 对象的格式化选项。
416
417**系统能力**:SystemCapability.Global.I18n
418
419**返回值:**
420
421| 类型                               | 说明                          |
422| -------------------------------- | --------------------------- |
423| [NumberOptions](#numberoptions9) | NumberFormat&nbsp;对象的格式化选项。 |
424
425
426**示例:**
427  ```js
428  let numfmt = new Intl.NumberFormat(["en-GB", "zh"], {style:'decimal', notation:"scientific"});
429  // 获取NumberFormat对象配置项
430  let options = numfmt.resolvedOptions();
431  let style = options.style; // style = decimal
432  let notation = options.notation; // notation = scientific
433  ```
434
435
436## NumberOptions<sup>9+</sup>
437
438表示设备支持的能力。
439
440**系统能力**:SystemCapability.Global.I18n
441
442| 名称                       | 类型      | 可读   | 可写   | 说明                                       |
443| ------------------------ | ------- | ---- | ---- | ---------------------------------------- |
444| locale                   | string  | 是    | 否    | 区域参数,&nbsp;如:"zh-Hans-CN"。               |
445| currency                 | string  | 是    | 是    | 货币单位,&nbsp;如:"EUR","CNY","USD"等。         |
446| currencySign             | string  | 是    | 是    | 货币单位的符号显示,取值包括:&nbsp;"symbol","narrowSymbol","code","name"&nbsp;。 |
447| currencyDisplay          | string  | 是    | 是    | 货币的显示方式,取值包括:"symbol",&nbsp;"narrowSymbol",&nbsp;"code",&nbsp;"name"。 |
448| unit                     | string  | 是    | 是    | 单位名称,如:"meter","inch",“hectare”等。        |
449| unitDisplay              | string  | 是    | 是    | 单位的显示格式,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 |
450| unitUsage                | string  | 是    | 是    | 单位的使用场景,取值包括:"default",&nbsp;"area-land-agricult",&nbsp;"area-land-commercl",&nbsp;"area-land-residntl",&nbsp;"length-person",&nbsp;"length-person-small",&nbsp;"length-rainfall",&nbsp;"length-road",&nbsp;"length-road-small",&nbsp;"length-snowfall",&nbsp;"length-vehicle",&nbsp;"length-visiblty",&nbsp;"length-visiblty-small",&nbsp;"length-person-informal",&nbsp;"length-person-small-informal",&nbsp;"length-road-informal",&nbsp;"speed-road-travel",&nbsp;"speed-wind",&nbsp;"temperature-person",&nbsp;"temperature-weather",&nbsp;"volume-vehicle-fuel"。 |
451| signDisplay              | string  | 是    | 是    | 数字符号的显示格式,取值包括:"auto",&nbsp;"never",&nbsp;"always",&nbsp;"expectZero"。 |
452| compactDisplay           | string  | 是    | 是    | 紧凑型的显示格式,取值包括:"long",&nbsp;"short"。      |
453| notation                 | string  | 是    | 是    | 数字的格式化规格,取值包括:"standard",&nbsp;"scientific",&nbsp;"engineering",&nbsp;"compact"。 |
454| localeMatcher            | string  | 是    | 是    | 要使用的区域匹配算法,取值包括:"lookup",&nbsp;"best&nbsp;fit"。 |
455| style                    | string  | 是    | 是    | 数字的显示格式,取值包括:"decimal",&nbsp;"currency",&nbsp;"percent",&nbsp;"unit"。 |
456| numberingSystem          | string  | 是    | 是    | 数字系统,取值包括:"adlm",&nbsp;"ahom",&nbsp;"arab",&nbsp;"arabext",&nbsp;"bali",&nbsp;"beng",&nbsp;"bhks",&nbsp;"brah",&nbsp;"cakm",&nbsp;"cham",&nbsp;"deva",&nbsp;"diak",&nbsp;"fullwide",&nbsp;"gong",&nbsp;"gonm",&nbsp;"gujr",&nbsp;"guru",&nbsp;"hanidec",&nbsp;"hmng",&nbsp;"hmnp",&nbsp;"java",&nbsp;"kali",&nbsp;"khmr",&nbsp;"knda",&nbsp;"lana",&nbsp;"lanatham",&nbsp;"laoo",&nbsp;"latn",&nbsp;"lepc",&nbsp;"limb",&nbsp;"mathbold",&nbsp;"mathdbl",&nbsp;"mathmono",&nbsp;"mathsanb",&nbsp;"mathsans",&nbsp;"mlym",&nbsp;"modi",&nbsp;"mong",&nbsp;"mroo",&nbsp;"mtei",&nbsp;"mymr",&nbsp;"mymrshan",&nbsp;"mymrtlng",&nbsp;"newa",&nbsp;"nkoo",&nbsp;"olck",&nbsp;"orya",&nbsp;"osma",&nbsp;"rohg",&nbsp;"saur",&nbsp;"segment",&nbsp;"shrd",&nbsp;"sind",&nbsp;"sinh",&nbsp;"sora",&nbsp;"sund",&nbsp;"takr",&nbsp;"talu",&nbsp;"tamldec",&nbsp;"telu",&nbsp;"thai",&nbsp;"tibt",&nbsp;"tirh",&nbsp;"vaii",&nbsp;"wara",&nbsp;"wcho"。 |
457| useGrouping              | boolean | 是    | 是    | 是否分组显示。                                  |
458| minimumIntegerDigits     | number  | 是    | 是    | 表示要使用的最小整数位数,取值范围:1~21。                  |
459| minimumFractionDigits    | number  | 是    | 是    | 表示要使用的最小分数位数,取值范围:0~20。                  |
460| maximumFractionDigits    | number  | 是    | 是    | 表示要使用的最大分数位数,取值范围:1~21。                  |
461| minimumSignificantDigits | number  | 是    | 是    | 表示要使用的最低有效位数,取值范围:1~21。                  |
462| maximumSignificantDigits | number  | 是    | 是    | 表示要使用的最大有效位数,取值范围:1~21。                  |
463
464
465## Collator<sup>8+</sup>
466
467
468### constructor<sup>8+</sup>
469
470constructor()
471
472创建排序对象。
473
474**系统能力**:SystemCapability.Global.I18n
475
476**示例:**
477  ```js
478  // 使用系统locale创建Collator对象
479  let collator = new Intl.Collator();
480  ```
481
482
483### constructor<sup>8+</sup>
484
485constructor(locale: string | Array&lt;string&gt;, options?: CollatorOptions)
486
487创建排序对象。
488
489**系统能力**:SystemCapability.Global.I18n
490
491**参数:**
492
493| 参数名                  | 类型                                   | 必填   | 说明                           |
494| -------------------- | ------------------------------------ | ---- | ---------------------------- |
495| locale               | string \| Array&lt;string&gt;        | 是    | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 |
496| options<sup>9+</sup> | [CollatorOptions](#collatoroptions9) | 否    | 用于创建排序对象的选项。                 |
497
498**示例:**
499  ```js
500  // 使用 zh-CN locale创建Collator对象,localeMatcher设置为lookup,usage设置为sort
501  let collator = new Intl.Collator("zh-CN", {localeMatcher: "lookup", usage: "sort"});
502  ```
503
504
505### compare<sup>8+</sup>
506
507compare(first: string, second: string): number
508
509依据Collator的排序策略对两个字符串进行比较。
510
511**系统能力**:SystemCapability.Global.I18n
512
513**参数:**
514
515| 参数名    | 类型     | 必填   | 说明           |
516| ------ | ------ | ---- | ------------ |
517| first  | string | 是    | 进行比较第一个字符串。  |
518| second | string | 是    | 进行比较的第二个字符串。 |
519
520**返回值:**
521
522| 类型     | 说明                                       |
523| ------ | ---------------------------------------- |
524| number | 比较结果。当number为负数,表示first排序在second之前;当number为0,表示first与second排序相同;当number为正数,表示first排序在second之后。 |
525
526**示例:**
527  ```js
528  // 使用en-GB locale创建Collator对象
529  let collator = new Intl.Collator("en-GB");
530  // 比较 "first" 和 "second" 的先后顺序
531  let compareResult = collator.compare("first", "second"); // compareResult = -1
532  ```
533
534
535### resolvedOptions<sup>8+</sup>
536
537resolvedOptions(): CollatorOptions
538
539返回Collator对象的属性。
540
541**系统能力**:SystemCapability.Global.I18n
542
543**返回值:**
544
545| 类型                                   | 说明                |
546| ------------------------------------ | ----------------- |
547| [CollatorOptions](#collatoroptions9) | 返回的Collator对象的属性。 |
548
549**示例:**
550  ```js
551  let collator = new Intl.Collator("zh-Hans", { usage: 'sort', ignorePunctuation: true });
552  // 获取Collator对象的配置项
553  let options = collator.resolvedOptions();
554  let usage = options.usage; // usage = "sort"
555  let ignorePunctuation = options.ignorePunctuation; // ignorePunctuation = true
556  ```
557
558
559## CollatorOptions<sup>9+</sup>
560
561表示Collator可设置的属性。
562
563**系统能力**:SystemCapability.Global.I18n
564
565| 名称                | 类型      | 可读   | 可写   | 说明                                       |
566| ----------------- | ------- | ---- | ---- | ---------------------------------------- |
567| localeMatcher     | string  | 是    | 是    | locale匹配算法,取值范围:"best&nbsp;fit",&nbsp;"lookup"。 |
568| usage             | string  | 是    | 是    | 比较的用途,取值范围:"sort",&nbsp;"search"。        |
569| sensitivity       | string  | 是    | 是    | 表示字符串中的哪些差异会导致非零结果值,取值范围:"base",&nbsp;"accent",&nbsp;"case",&nbsp;"letiant"。 |
570| ignorePunctuation | boolean | 是    | 是    | 表示是否忽略标点符号,取值范围:true,&nbsp;false。        |
571| collation         | string  | 是    | 是    | 排序规则,取值范围:"big5han",&nbsp;"compat",&nbsp;"dict",&nbsp;"direct",&nbsp;"ducet",&nbsp;"eor",&nbsp;"gb2312",&nbsp;"phonebk",&nbsp;"phonetic",&nbsp;"pinyin",&nbsp;"reformed",&nbsp;"searchjl",&nbsp;"stroke",&nbsp;"trad",&nbsp;"unihan",&nbsp;"zhuyin"。 |
572| numeric           | boolean | 是    | 是    | 是否使用数字排序,取值范围:true,&nbsp;false。          |
573| caseFirst         | string  | 是    | 是    | 表示大写、小写的排序顺序,取值范围:"upper",&nbsp;"lower",&nbsp;"false"。 |
574
575
576## PluralRules<sup>8+</sup>
577
578
579### constructor<sup>8+</sup>
580
581constructor()
582
583创建单复数对象来计算数字的单复数类别。
584
585**系统能力**:SystemCapability.Global.I18n
586
587**示例:**
588  ```js
589  // 使用系统locale创建PluralRules对象
590  let pluralRules = new Intl.PluralRules();
591  ```
592
593
594### constructor<sup>8+</sup>
595
596constructor(locale: string | Array&lt;string&gt;, options?: PluralRulesOptions)
597
598创建单复数对象来计算数字的单复数类别。
599
600**系统能力**:SystemCapability.Global.I18n
601
602**参数:**
603
604| 参数名                  | 类型                                       | 必填   | 说明                           |
605| -------------------- | ---------------------------------------- | ---- | ---------------------------- |
606| locale               | string \| Array&lt;string&gt;            | 是    | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 |
607| options<sup>9+</sup> | [PluralRulesOptions](#pluralrulesoptions9) | 否    | 用于创建单复数对象的选项。                |
608
609**示例:**
610  ```js
611  // 使用 zh-CN locale创建PluralRules对象,localeMatcher设置为lookup,type设置为cardinal
612  let pluralRules= new Intl.PluralRules("zh-CN", {"localeMatcher": "lookup", "type": "cardinal"});
613  ```
614
615
616### select<sup>8+</sup>
617
618select(n: number): string
619
620返回一个字符串表示该数字的单复数类别。
621
622**系统能力**:SystemCapability.Global.I18n
623
624**参数:**
625
626| 参数名  | 类型     | 必填   | 说明           |
627| ---- | ------ | ---- | ------------ |
628| n    | number | 是    | 待获取单复数类别的数字。 |
629
630**返回值:**
631
632| 类型     | 说明                                       |
633| ------ | ---------------------------------------- |
634| string | 单复数类别,取值包括:"zero","one","two",&nbsp;"few",&nbsp;"many",&nbsp;"others"。 |
635
636**示例:**
637  ```js
638  // 使用 zh-Hans locale创建PluralRules对象
639  let zhPluralRules = new Intl.PluralRules("zh-Hans");
640  // 计算 zh-Hans locale中数字1对应的单复数类别
641  let plural = zhPluralRules.select(1); // plural = other
642
643  // 使用 en-US locale创建PluralRules对象
644  let enPluralRules = new Intl.PluralRules("en-US");
645  // 计算 en-US locale中数字1对应的单复数类别
646  plural = enPluralRules.select(1); // plural = one
647  ```
648
649
650## PluralRulesOptions<sup>9+</sup>
651
652表示PluralRules对象可设置的属性。
653
654**系统能力**:SystemCapability.Global.I18n
655
656| 名称                       | 类型     | 可读   | 可写   | 说明                                       |
657| ------------------------ | ------ | ---- | ---- | ---------------------------------------- |
658| localeMatcher            | string | 是    | 是    | locale匹配算法,取值包括:"best&nbsp;fit",&nbsp;"lookup"。 |
659| type                     | string | 是    | 是    | 排序的类型,取值包括:"cardinal",&nbsp;"ordinal"。   |
660| minimumIntegerDigits     | number | 是    | 是    | 表示要使用的最小整数位数,取值范围:1~21。                  |
661| minimumFractionDigits    | number | 是    | 是    | 表示要使用的最小分数位数,取值范围:0~20。                  |
662| maximumFractionDigits    | number | 是    | 是    | 表示要使用的最大分数位数,取值范围:1~21。                  |
663| minimumSignificantDigits | number | 是    | 是    | 表示要使用的最低有效位数,取值范围:1~21。                  |
664| maximumSignificantDigits | number | 是    | 是    | 表示要使用的最大有效位数,取值范围:1~21。                  |
665
666
667## RelativeTimeFormat<sup>8+</sup>
668
669
670### constructor<sup>8+</sup>
671
672constructor()
673
674创建相对时间格式化对象。
675
676**系统能力**:SystemCapability.Global.I18n
677
678**示例:**
679  ```js
680  // 使用系统locale创建RelativeTimeFormat对象
681  let relativetimefmt = new Intl.RelativeTimeFormat();
682  ```
683
684
685### constructor<sup>8+</sup>
686
687constructor(locale: string | Array&lt;string&gt;, options?: RelativeTimeFormatInputOptions)
688
689创建相对时间格式化对象。
690
691**系统能力**:SystemCapability.Global.I18n
692
693**参数:**
694
695| 参数名                  | 类型                                       | 必填   | 说明                           |
696| -------------------- | ---------------------------------------- | ---- | ---------------------------- |
697| locale               | string \| Array&lt;string&gt;            | 是    | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 |
698| options<sup>9+</sup> | [RelativeTimeFormatInputOptions](#relativetimeformatinputoptions9) | 否    | 用于创建相对时间格式化对象的选项。            |
699
700**示例:**
701  ```js
702  // 使用 zh-CN locale创建RelativeTimeFormat对象,localeMatcher设置为lookup,numeric设置为always,style设置为long
703  let relativeTimeFormat = new Intl.RelativeTimeFormat("zh-CN", {"localeMatcher": "lookup", "numeric": "always", "style": "long"});
704  ```
705
706
707### format<sup>8+</sup>
708
709format(value: number, unit: string): string
710
711依据locale和格式化选项,对value和unit进行格式化。
712
713**系统能力**:SystemCapability.Global.I18n
714
715**参数:**
716
717| 参数名   | 类型     | 必填   | 说明                                       |
718| ----- | ------ | ---- | ---------------------------------------- |
719| value | number | 是    | 相对时间格式化的数值。                              |
720| unit  | string | 是    | 相对时间格式化的单位,取值包括:"year",&nbsp;"quarter",&nbsp;"month",&nbsp;"week",&nbsp;"day",&nbsp;"hour",&nbsp;"minute",&nbsp;"second"。 |
721
722**返回值:**
723
724| 类型     | 说明         |
725| ------ | ---------- |
726| string | 格式化后的相对时间。 |
727
728**示例:**
729  ```js
730  // 使用 zh-CN locale创建RelativeTimeFormat对象
731  let relativetimefmt = new Intl.RelativeTimeFormat("zh-CN");
732  // 计算 zh-CN locale中数字3,单位quarter的本地化表示
733  let formatResult = relativetimefmt.format(3, "quarter"); // formatResult = "3个季度后"
734  ```
735
736
737### formatToParts<sup>8+</sup>
738
739formatToParts(value: number, unit: string): Array&lt;object&gt;
740
741返回一个对象数组,表示可用于自定义区域设置格式的相对时间格式。
742
743**系统能力**:SystemCapability.Global.I18n
744
745**参数:**
746
747| 参数名   | 类型     | 必填   | 说明                                       |
748| ----- | ------ | ---- | ---------------------------------------- |
749| value | number | 是    | 相对时间格式化的数值。                              |
750| unit  | string | 是    | 相对时间格式化的单位,取值包括:"year",&nbsp;"quarter",&nbsp;"month",&nbsp;"week",&nbsp;"day",&nbsp;"hour",&nbsp;"minute",&nbsp;"second"。 |
751
752**返回值:**
753
754| 类型                  | 说明                          |
755| ------------------- | --------------------------- |
756| Array&lt;object&gt; | 返回可用于自定义区域设置格式的相对时间格式的对象数组。 |
757
758**示例:**
759  ```js
760  // 使用 en locale创建RelativeTimeFormat对象,numeric设置为auto
761  let relativetimefmt = new Intl.RelativeTimeFormat("en", {"numeric": "auto"});
762  let parts = relativetimefmt.formatToParts(10, "seconds"); // parts = [ {type: "literal", value: "in"}, {type: "integer", value: 10, unit: "second"}, {type: "literal", value: "seconds"} ]
763  ```
764
765
766### resolvedOptions<sup>8+</sup>
767
768resolvedOptions(): RelativeTimeFormatResolvedOptions
769
770获取RelativeTimeFormat对象的格式化选项。
771
772**系统能力**:SystemCapability.Global.I18n
773
774**返回值:**
775
776| 类型                                       | 说明                                |
777| ---------------------------------------- | --------------------------------- |
778| [RelativeTimeFormatResolvedOptions](#relativetimeformatresolvedoptions8) | RelativeTimeFormat&nbsp;对象的格式化选项。 |
779
780**示例:**
781  ```js
782  // 使用 en-GB locale创建RelativeTimeFormat对象
783  let relativetimefmt= new Intl.RelativeTimeFormat("en-GB", { style: "short" });
784  // 获取RelativeTimeFormat对象配置项
785  let options = relativetimefmt.resolvedOptions();
786  let style = options.style; // style = "short"
787  ```
788
789
790## RelativeTimeFormatInputOptions<sup>9+</sup>
791
792表示RelativeTimeFormat对象可设置的属性。
793
794**系统能力**:SystemCapability.Global.I18n
795
796| 名称            | 类型     | 可读   | 可写   | 说明                                       |
797| ------------- | ------ | ---- | ---- | ---------------------------------------- |
798| localeMatcher | string | 是    | 是    | locale匹配算法,取值包括:"best&nbsp;fit",&nbsp;"lookup"。 |
799| numeric       | string | 是    | 是    | 输出消息的格式,取值包括:"always",&nbsp;"auto"。      |
800| style         | string | 是    | 是    | 国际化消息的长度,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 |
801
802
803## RelativeTimeFormatResolvedOptions<sup>8+</sup>
804
805表示RelativeTimeFormat对象可设置的属性。
806
807**系统能力**:SystemCapability.Global.I18n
808
809| 名称              | 类型     | 可读   | 可写   | 说明                                       |
810| --------------- | ------ | ---- | ---- | ---------------------------------------- |
811| locale          | string | 是    | 是    | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。             |
812| numeric         | string | 是    | 是    | 输出消息的格式,取值包括:"always",&nbsp;"auto"。      |
813| style           | string | 是    | 是    | 国际化消息的长度,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。 |
814| numberingSystem | string | 是    | 是    | 使用的数字系统。                                 |
815