• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.i18n (国际化-I18n)
2
3<!--Kit: Localization Kit-->
4<!--Subsystem: Global-->
5<!--Owner: @yliupy-->
6<!--Designer: @sunyaozu-->
7<!--Tester: @lpw_work-->
8<!--Adviser: @Brilliantry_Rui-->
9
10本模块提供系统相关的或者增强的[国际化](../../internationalization/i18n-l10n.md)能力,包括区域管理、电话号码处理、日历等,相关接口为[ECMA 402](https://dev.ecma-international.org/publications-and-standards/standards/ecma-402/)标准中未定义的补充接口。[Intl模块](js-apis-intl.md)提供了ECMA 402标准定义的基础国际化接口,与本模块共同使用可提供完整地国际化能力。
11
12>  **说明:**
13>
14>  - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
15>
16>  - 本模块接口依据[CLDR](https://cldr.unicode.org) 国际化数据库进行处理,随着CLDR演进,本模块接口处理结果可能发生变化。其中,API version 12对应[CLDR 42](https://cldr.unicode.org/index/downloads/cldr-42),具体数据变化请参考官方链接。
17>
18>  - 从API version 11开始,本模块部分接口支持在ArkTS卡片中使用。
19
20
21## 导入模块
22
23```ts
24import { i18n } from '@kit.LocalizationKit';
25```
26
27## System<sup>9+</sup>
28
29提供系统属性相关的能力,包括语言地区名称翻译、支持的语言地区列表获取和系统语言地区获取等。
30
31### getDisplayCountry<sup>9+</sup>
32
33static getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): string
34
35获取国家地区名称在指定语言下的翻译。
36
37**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
38
39**系统能力:** SystemCapability.Global.I18n
40
41**参数:**
42
43| 参数名          | 类型      | 必填   | 说明               |
44| ------------ | ------- | ---- | ---------------- |
45| country      | string  | 是    | 国家地区,要求是合法的国家地区码。            |
46| locale       | string  | 是    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成。     |
47| sentenceCase | boolean | 否    | true表示按照首字母大写的格式显示文本,false表示按照区域默认的大小写格式显示文本。默认值:true。 |
48
49**返回值:**
50
51| 类型     | 说明            |
52| ------ | ------------- |
53| string | 国家地区名称在指定语言下的翻译。 |
54
55**错误码:**
56
57以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
58
59| 错误码ID  | 错误信息                   |
60| ------ | ---------------------- |
61| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
62| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
63
64> **说明**
65>
66> 890001的报错信息请以接口的实际报错为准。
67
68**示例:**
69  ```ts
70  import { BusinessError } from '@kit.BasicServicesKit';
71
72  try {
73    let displayCountry: string = i18n.System.getDisplayCountry('CN', 'en-GB'); // displayCountry = 'China'
74  } catch (error) {
75    let err: BusinessError = error as BusinessError;
76    console.error(`call System.getDisplayCountry failed, error code: ${err.code}, message: ${err.message}.`);
77  }
78  ```
79
80### getDisplayLanguage<sup>9+</sup>
81
82static getDisplayLanguage(language: string, locale: string, sentenceCase?: boolean): string
83
84获取语言名称在指定语言下的翻译。
85
86**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
87
88**系统能力:** SystemCapability.Global.I18n
89
90**参数:**
91
92| 参数名          | 类型      | 必填   | 说明               |
93| ------------ | ------- | ---- | ---------------- |
94| language     | string  | 是    | 语言,要求是合法的语言ID。            |
95| locale       | string  | 是    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成。     |
96| sentenceCase | boolean | 否    | true表示按照首字母大写的格式显示文本,false表示按照区域默认的大小写格式显示文本。默认值:true。 |
97
98**返回值:**
99
100| 类型     | 说明            |
101| ------ | ------------- |
102| string | 语言名称在指定语言下的翻译。 |
103
104**错误码:**
105
106以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
107
108| 错误码ID  | 错误信息                   |
109| ------ | ---------------------- |
110| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
111| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
112
113**示例:**
114  ```ts
115  import { BusinessError } from '@kit.BasicServicesKit';
116
117  try {
118    // 获取“中文”在英文下的翻译
119    let displayLanguage: string = i18n.System.getDisplayLanguage('zh', 'en-GB'); // displayLanguage = 'Chinese'
120  } catch (error) {
121    let err: BusinessError = error as BusinessError;
122    console.error(`call System.getDisplayLanguage failed, error code: ${err.code}, message: ${err.message}.`);
123  }
124  ```
125
126### getSystemLanguages<sup>9+</sup>
127
128static getSystemLanguages(): Array&lt;string&gt;
129
130获取系统支持的语言列表。
131
132从API version 11开始,该类型支持在ArkTS卡片中使用。
133
134**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
135
136**系统能力:** SystemCapability.Global.I18n
137
138**返回值:**
139
140| 类型                  | 说明           |
141| ------------------- | ------------ |
142| Array&lt;string&gt; | 系统支持的语言列表。 |
143
144**示例:**
145  ```ts
146  // systemLanguages = [ 'ug', 'bo', 'zh-Hant', 'en-Latn-US', 'zh-Hans' ]
147  let systemLanguages: Array<string> = i18n.System.getSystemLanguages();
148  ```
149
150### getSystemCountries<sup>9+</sup>
151
152static getSystemCountries(language: string): Array&lt;string&gt;
153
154获取输入语言下系统支持的国家地区列表。
155
156**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
157
158**系统能力:** SystemCapability.Global.I18n
159
160**参数:**
161
162| 参数名      | 类型     | 必填   | 说明    |
163| -------- | ------ | ---- | ----- |
164| language | string | 是    | 合法的语言ID。 |
165
166**返回值:**
167
168| 类型                  | 说明           |
169| ------------------- | ------------ |
170| Array&lt;string&gt; | 某种特定语言下系统支持的国家地区列表。 |
171
172**错误码:**
173
174以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
175
176| 错误码ID  | 错误信息                   |
177| ------ | ---------------------- |
178| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
179| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
180
181> **说明**
182>
183> 890001的报错信息请以接口的实际报错为准。
184
185**示例:**
186  ```ts
187  import { BusinessError } from '@kit.BasicServicesKit';
188
189  try {
190    // systemCountries = [ 'ZW', 'YT', 'YE', ..., 'ER', 'CN', 'DE' ]
191    let systemCountries: Array<string> = i18n.System.getSystemCountries('zh');
192  } catch (error) {
193    let err: BusinessError = error as BusinessError;
194    console.error(`call System.getSystemCountries failed, error code: ${err.code}, message: ${err.message}.`);
195  }
196  ```
197
198### isSuggested<sup>9+</sup>
199
200static isSuggested(language: string, region?: string): boolean
201
202判断语言是否是地区的推荐语言。用于根据地区推荐语言或根据语言推荐地区。
203
204**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
205
206**系统能力:** SystemCapability.Global.I18n
207
208**参数:**
209
210| 参数名      | 类型     | 必填   | 说明            |
211| -------- | ------ | ---- | ------------- |
212| language | string | 是    | 合法的语言ID,例如zh。 |
213| region   | string | 否    | 合法的地区ID,例如CN。<br>默认值:SIM卡国家地区。  |
214
215**返回值:**
216
217| 类型      | 说明                                       |
218| ------- | ---------------------------------------- |
219| boolean | true表示语言是地区的推荐语言,false表示语言不是地区的推荐语言。 |
220
221**错误码:**
222
223以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
224
225| 错误码ID  | 错误信息                   |
226| ------ | ---------------------- |
227| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
228| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
229
230
231> **说明**
232>
233> 890001的报错信息请以接口的实际报错为准。
234
235**示例:**
236  ```ts
237  import { BusinessError } from '@kit.BasicServicesKit';
238
239  try {
240    let isSuggestedCountry: boolean = i18n.System.isSuggested('zh', 'CN'); // isSuggestedCountry = true
241    isSuggestedCountry = i18n.System.isSuggested('en'); // 结果和系统当前地区相关
242  } catch (error) {
243    let err: BusinessError = error as BusinessError;
244    console.error(`call System.isSuggested failed, error code: ${err.code}, message: ${err.message}.`);
245  }
246  ```
247
248### getSystemLanguage<sup>9+</sup>
249
250static getSystemLanguage(): string
251
252获取系统当前设置的语言。若要监听系统语言变化,可以监听[公共事件](../apis-basic-services-kit/common_event/commonEventManager-definitions.md#common_event_locale_changed)OHOS::EventFwk::CommonEventSupport::COMMON_EVENT_LOCALE_CHANGED,具体可参考[系统语言与区域](../../internationalization/i18n-system-language-region.md#开发步骤)。
253
254**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
255
256**卡片能力**:从API version 11开始,该接口支持在ArkTS卡片中使用。
257
258**系统能力:** SystemCapability.Global.I18n
259
260**返回值:**
261
262| 类型     | 说明      |
263| ------ | ------- |
264| string | 表示语言ID的字符串。 |
265
266**示例:**
267  ```ts
268  let systemLanguage: string = i18n.System.getSystemLanguage(); // 如果系统语言为简体中文,systemLanguage = 'zh-Hans'
269  ```
270
271### getSystemRegion<sup>9+</sup>
272
273static getSystemRegion(): string
274
275获取系统当前设置的国家地区。若要监听系统地区变化,可以监听[公共事件](../apis-basic-services-kit/common_event/commonEventManager-definitions.md#common_event_locale_changed)OHOS::EventFwk::CommonEventSupport::COMMON_EVENT_LOCALE_CHANGED,具体可参考[系统语言与区域](../../internationalization/i18n-system-language-region.md#开发步骤)。
276
277**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
278
279**系统能力:** SystemCapability.Global.I18n
280
281**返回值:**
282
283| 类型     | 说明      |
284| ------ | ------- |
285| string | 表示国家地区ID的字符串。 |
286
287**示例:**
288  ```ts
289  let systemRegion: string = i18n.System.getSystemRegion(); // 如果系统地区为中国,systemRegion = 'CN'
290  ```
291
292### getSystemLocale<sup>(deprecated)</sup>
293
294static getSystemLocale(): string
295
296> 从API version 9开始支持,从API version 20开始废弃,建议使用[System.getSystemLocaleInstance](#getsystemlocaleinstance20)代替。
297
298获取系统当前设置的区域。
299
300**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
301
302**系统能力:** SystemCapability.Global.I18n
303
304**返回值:**
305
306| 类型     | 说明      |
307| ------ | ------- |
308| string | 表示区域ID的字符串。 |
309
310**示例:**
311  ```ts
312  let systemLocale: string = i18n.System.getSystemLocale(); // 如果系统语言为简体中文、地区为中国,systemLocale = 'zh-Hans-CN'
313  ```
314
315### getSystemLocaleInstance<sup>20+</sup>
316
317static getSystemLocaleInstance(): Intl.Locale
318
319获取系统当前设置的区域对象。若要监听系统区域变化,可以监听[公共事件](../apis-basic-services-kit/common_event/commonEventManager-definitions.md#common_event_locale_changed)OHOS::EventFwk::CommonEventSupport::COMMON_EVENT_LOCALE_CHANGED,具体可参考[系统语言与区域](../../internationalization/i18n-system-language-region.md#开发步骤)。
320
321**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
322
323**系统能力:** SystemCapability.Global.I18n
324
325**返回值:**
326| 类型     | 说明      |
327| ------ | ------- |
328| [Intl.Locale](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) | 系统区域对象。 |
329
330**示例:**
331  ```ts
332  import { i18n } from '@kit.LocalizationKit';
333
334  let systemLocale: Intl.Locale = i18n.System.getSystemLocaleInstance();
335  ```
336
337### is24HourClock<sup>9+</sup>
338
339static is24HourClock(): boolean
340
341判断系统时制是否为24小时制。若要监听系统时制变化,可以监听[公共事件](../apis-basic-services-kit/common_event/commonEventManager-definitions.md#common_event_time_changed)OHOS::EventFwk::CommonEventSupport::COMMON_EVENT_TIME_CHANGED,具体可参考[用户偏好](../../internationalization/i18n-user-preferences.md#开发步骤)。
342
343**卡片能力**:从API version 11开始,该接口支持在ArkTS卡片中使用。
344
345**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
346
347**系统能力:** SystemCapability.Global.I18n
348
349**返回值:**
350
351| 类型      | 说明                                       |
352| ------- | ---------------------------------------- |
353| boolean | true表示系统时制为24小时制,false表示系统时制为12小时制。 |
354
355**示例:**
356  ```ts
357  let is24HourClock: boolean = i18n.System.is24HourClock(); // 如果系统时制是24小时制,is24HourClock = true
358  ```
359
360
361### getPreferredLanguageList<sup>9+</sup>
362
363static getPreferredLanguageList(): Array&lt;string&gt;
364
365获取系统偏好语言列表。
366
367**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
368
369**系统能力:** SystemCapability.Global.I18n
370
371**返回值:**
372
373| 类型                  | 说明        |
374| ------------------- | --------- |
375| Array&lt;string&gt; | 系统偏好语言列表。 |
376
377**示例:**
378  ```ts
379  let preferredLanguageList: Array<string> = i18n.System.getPreferredLanguageList();
380  ```
381
382### getFirstPreferredLanguage<sup>9+</sup>
383
384static getFirstPreferredLanguage(): string
385
386获取系统偏好语言列表中的第一个语言。
387
388**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
389
390**系统能力:** SystemCapability.Global.I18n
391
392**返回值:**
393
394| 类型     | 说明             |
395| ------ | -------------- |
396| string | 系统偏好语言列表中的第一个语言。 |
397
398**示例:**
399  ```ts
400  let firstPreferredLanguage: string = i18n.System.getFirstPreferredLanguage();
401  ```
402
403### setAppPreferredLanguage<sup>11+</sup>
404
405static setAppPreferredLanguage(language: string): void
406
407设置应用偏好语言。设置后,应用将优先加载应用偏好语言对应的资源。设置偏好语言为'default'后,应用语言将跟随系统语言,应用冷启动生效。
408
409**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
410
411**系统能力:** SystemCapability.Global.I18n
412
413**参数:**
414
415| 参数名      | 类型     | 必填   | 说明    |
416| -------- | ------ | ---- | ----- |
417| language | string | 是    | 合法的语言ID或'default'。 |
418
419**错误码:**
420
421以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
422
423| 错误码ID  | 错误信息                   |
424| ------ | ---------------------- |
425| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
426| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
427
428**示例:**
429  ```ts
430  import { BusinessError } from '@kit.BasicServicesKit';
431
432  try {
433    i18n.System.setAppPreferredLanguage('zh');
434  } catch (error) {
435    let err: BusinessError = error as BusinessError;
436    console.error(`call System.setAppPreferredLanguage failed, error code: ${err.code}, message: ${err.message}.`);
437  }
438  ```
439
440### getAppPreferredLanguage<sup>9+</sup>
441
442static getAppPreferredLanguage(): string
443
444获取应用偏好语言。
445
446**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
447
448**系统能力:** SystemCapability.Global.I18n
449
450**返回值:**
451
452| 类型     | 说明       |
453| ------ | -------- |
454| string | 应用偏好语言。 |
455
456**示例:**
457  ```ts
458  let appPreferredLanguage: string = i18n.System.getAppPreferredLanguage();
459  ```
460
461
462### getUsingLocalDigit<sup>9+</sup>
463
464static getUsingLocalDigit(): boolean
465
466判断系统是否使用本地数字。
467
468**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
469
470**系统能力:** SystemCapability.Global.I18n
471
472**返回值:**
473
474| 类型      | 说明                                       |
475| ------- | ---------------------------------------- |
476| boolean | true表示系统当前使用本地数字,false表示系统当前不使用本地数字。 |
477
478**示例:**
479  ```ts
480  let usingLocalDigit: boolean = i18n.System.getUsingLocalDigit();
481  ```
482
483### getSimplifiedLanguage<sup>15+</sup>
484
485static getSimplifiedLanguage(language?: string): string
486
487获取语言的简化表示。例如:'en-Latn-US'的简化表示为'en','en-Latn-GB'的简化表示为'en-GB'。
488
489**原子化服务API:** 从API version 15开始,该接口支持在原子化服务中使用。
490
491**系统能力:** SystemCapability.Global.I18n
492
493**参数:**
494
495| 参数名      | 类型     | 必填   | 说明            |
496| -------- | ------ | ---- | ------------- |
497| language | string | 否    | 合法的语言ID。默认值:系统语言。 |
498
499**返回值:**
500
501| 类型      | 说明                                       |
502| ------- | ---------------------------------------- |
503| string | 不传入language时,会根据系统语言和地区判断是否存在系统支持的方言,若存在则返回方言的简化表示;若不存在,则返回系统语言的简化表示。<br>传入language时,返回language的简化表示。 |
504
505**错误码:**
506
507以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
508
509| 错误码ID  | 错误信息                   |
510| ------ | ---------------------- |
511| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
512| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
513
514**示例:**
515  ```ts
516  import { BusinessError } from '@kit.BasicServicesKit';
517
518  try {
519    // simplifiedLanguage = 'zh'
520    let simplifiedLanguage: string = i18n.System.getSimplifiedLanguage('zh-Hans-CN');
521    // 获取当前系统语言的简化表示
522    let simplifiedSystemLanguage: string = i18n.System.getSimplifiedLanguage();
523  } catch (error) {
524    let err: BusinessError = error as BusinessError;
525    console.error(`call System.getSimplifiedLanguage failed, error code: ${err.code}, message: ${err.message}.`);
526  }
527  ```
528
529### getTemperatureType<sup>18+</sup>
530
531static getTemperatureType(): TemperatureType
532
533获取系统设置的温度单位。
534
535**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
536
537**系统能力:** SystemCapability.Global.I18n
538
539**返回值:**
540
541| 类型     | 说明            |
542| ------ | ------------- |
543| [TemperatureType](#temperaturetype18) | 温度单位。 |
544
545**示例:**
546  ```ts
547  let temperatureType: i18n.TemperatureType = i18n.System.getTemperatureType();
548  ```
549
550### getTemperatureName<sup>18+</sup>
551
552static getTemperatureName(type: TemperatureType): string
553
554获取温度单位的名称。
555
556**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
557
558**系统能力:** SystemCapability.Global.I18n
559
560**参数:**
561
562| 参数名      | 类型     | 必填   | 说明            |
563| -------- | ------ | ---- | ------------- |
564| type| [TemperatureType](#temperaturetype18) | 是    | 温度单位。 |
565
566**返回值:**
567
568| 类型      | 说明                                       |
569| ------- | ---------------------------------------- |
570| string | 返回温度单位的名称,包括celsius,fahrenheit,kelvin。 |
571
572**错误码:**
573
574以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)。
575
576| 错误码ID  | 错误信息                   |
577| ------ | ---------------------- |
578| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
579
580
581> **说明**
582>
583> 890001的报错信息请以接口的实际报错为准。
584
585**示例:**
586  ```ts
587  import { BusinessError } from '@kit.BasicServicesKit';
588
589  try {
590    // temperatureName = 'celsius'
591    let temperatureName: string = i18n.System.getTemperatureName(i18n.TemperatureType.CELSIUS);
592  } catch (error) {
593    let err: BusinessError = error as BusinessError;
594    console.error(`call System.getTemperatureName failed, error code: ${err.code}, message: ${err.message}.`);
595  }
596  ```
597
598### getFirstDayOfWeek<sup>18+</sup>
599
600static getFirstDayOfWeek(): WeekDay
601
602获取系统设置的周起始日。
603
604**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
605
606**系统能力:** SystemCapability.Global.I18n
607
608**返回值:**
609
610| 类型     | 说明            |
611| ------ | ------------- |
612| [WeekDay](#weekday18) | 周起始日。 |
613
614**示例:**
615  ```ts
616  let firstDayOfWeek: i18n.WeekDay = i18n.System.getFirstDayOfWeek();
617  ```
618
619## TemperatureType<sup>18+</sup>
620
621温度单位的枚举。
622
623**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
624
625**系统能力:** SystemCapability.Global.I18n
626
627| 名称 | 值 | 说明 |
628| -------- | -------- | -------- |
629| CELSIUS | 1 | 摄氏度。 |
630| FAHRENHEIT | 2 | 华氏度。 |
631| KELVIN | 3 | 开尔文。 |
632
633## WeekDay<sup>18+</sup>
634
635周起始日的枚举,取值范围为周一至周日。
636
637**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
638
639**系统能力:** SystemCapability.Global.I18n
640
641| 名称 | 值 | 说明 |
642| -------- | -------- | -------- |
643| MON | 1 | 周一。 |
644| TUE | 2 | 周二。 |
645| WED | 3 | 周三。 |
646| THU | 4 | 周四。 |
647| FRI | 5 | 周五。 |
648| SAT | 6 | 周六。 |
649| SUN | 7 | 周日。 |
650
651
652## i18n.isRTL
653
654isRTL(locale: string): boolean
655
656判断语言是否为镜像语言。在镜像语言下,UI界面需要[镜像显示](../../internationalization/i18n-ui-design.md#界面镜像)。
657
658**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
659
660**系统能力:** SystemCapability.Global.I18n
661
662**参数:**
663
664| 参数名    | 类型     | 必填   | 说明      |
665| ------ | ------ | ---- | ------- |
666| locale | string | 是    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成。  |
667
668**返回值:**
669
670| 类型      | 说明                                       |
671| ------- | ---------------------------------------- |
672| boolean | true表示该语言是镜像语言,false表示该语言不是镜像语言。 |
673
674**示例:**
675  ```ts
676  let isZhRTL: boolean = i18n.isRTL('zh-CN'); // 中文不是镜像语言,返回false
677  let isArRTL: boolean = i18n.isRTL('ar-EG'); // 阿语是镜像语言,返回true
678  ```
679
680## i18n.getCalendar<sup>8+</sup>
681
682getCalendar(locale: string, type? : string): Calendar
683
684获取指定区域和历法的日历对象。
685
686**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
687
688**系统能力:** SystemCapability.Global.I18n
689
690**参数:**
691
692| 参数名    | 类型     | 必填   | 说明                                       |
693| ------ | ------ | ---- | ---------------------------------------- |
694| locale | string | 是    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成,例如zh-Hans-CN。                 |
695| type   | string | 否    | 表示历法,取值包括:buddhist,&nbsp;chinese,&nbsp;coptic,&nbsp;ethiopic,&nbsp;hebrew,&nbsp;gregory,&nbsp;indian,&nbsp;islamic_civil,&nbsp;islamic_tbla,&nbsp;islamic_umalqura,&nbsp;japanese,&nbsp;persian。<br>默认值:区域默认的历法。不同取值代表的含义和使用场景请参考[设置日历和历法](../../internationalization/i18n-calendar.md)。 |
696
697**返回值:**
698
699| 类型                     | 说明    |
700| ---------------------- | ----- |
701| [Calendar](#calendar8) | 日历对象。 |
702
703**示例:**
704  ```ts
705  let calendar: i18n.Calendar = i18n.getCalendar('zh-Hans', 'chinese'); // 获取中国农历日历对象
706  ```
707
708## EntityRecognizer<sup>11+</sup>
709
710提供实体识别相关的能力,可以获取文本中实体的类型和起止位置。当前支持识别的实体包括电话号码和时间日期。
711
712### constructor<sup>11+</sup>
713
714constructor(locale?: string)
715
716创建实体识别对象。该对象根据区域规则识别文本中的实体。
717
718**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
719
720**系统能力:** SystemCapability.Global.I18n
721
722**参数:**
723
724| 参数名  | 类型   | 必填   | 说明                |
725| ---- | ---- | ---- | ----------------- |
726| locale | string | 否    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成,例如zh-Hans-CN。<br>默认值:系统当前区域ID。 |
727
728**错误码:**
729
730以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
731
732| 错误码ID  | 错误信息                   |
733| ------ | ---------------------- |
734| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
735| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
736
737**示例:**
738  ```ts
739  import { BusinessError } from '@kit.BasicServicesKit';
740
741  try {
742    let entityRecognizer: i18n.EntityRecognizer = new i18n.EntityRecognizer('zh-CN');
743  } catch (error) {
744    let err: BusinessError = error as BusinessError;
745    console.error(`call new i18n.EntityRecognizer failed, error code: ${err.code}, message: ${err.message}.`);
746  }
747  ```
748
749### findEntityInfo<sup>11+</sup>
750
751findEntityInfo(text: string): Array&lt;EntityInfoItem&gt;
752
753获取文本中的实体信息。
754
755**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
756
757**系统能力:** SystemCapability.Global.I18n
758
759**参数:**
760
761| 参数名  | 类型   | 必填   | 说明                |
762| ---- | ---- | ---- | ----------------- |
763| text | string | 是    | 输入文本。 |
764
765**返回值:**
766
767| 类型   | 说明                |
768| ---- | ----------------- |
769| Array&lt;[EntityInfoItem](#entityinfoitem11)&gt; | 文本中的实体信息列表。 |
770
771**错误码:**
772
773以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
774
775| 错误码ID  | 错误信息                   |
776| ------ | ---------------------- |
777| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
778
779**示例:**
780  ```ts
781  import { BusinessError } from '@kit.BasicServicesKit';
782
783  try {
784    let entityRecognizer: i18n.EntityRecognizer = new i18n.EntityRecognizer('zh-CN');
785    let phoneNumberText: string = '如有疑问,请联系158****2312';
786    // phoneNumberEntity[0].type = 'phone_number', phoneNumberEntity[0].begin = 8, phoneNumberEntity[0].end = 19
787    let phoneNumberEntity: Array<i18n.EntityInfoItem> = entityRecognizer.findEntityInfo(phoneNumberText);
788    let dateText: string = '我们2023年12月1日一起吃饭吧。';
789    // dateEntity[0].type = 'date', dateEntity[0].begin = 2, dateEntity[0].end = 12
790    let dateEntity: Array<i18n.EntityInfoItem> = entityRecognizer.findEntityInfo(dateText);
791  } catch (error) {
792    let err: BusinessError = error as BusinessError;
793    console.error(`call EntityRecognizer.findEntityInfo failed, error code: ${err.code}, message: ${err.message}.`);
794  }
795  ```
796
797## EntityInfoItem<sup>11+</sup>
798
799实体信息属性。
800
801**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
802
803**系统能力:** SystemCapability.Global.I18n
804
805| 名称  | 类型   | 只读   | 可选   | 说明                |
806| ---- | ---- | ---- | ---- | ----------------- |
807| type | string | 否    | 否    | 实体的类型,当前支持phone_number和date类型。phone_number表示实体类型是电话号码,date表示实体类型是时间日期。 |
808| begin | number | 否    | 否    | 实体在输入字符串中的起始位置。 |
809| end | number | 否    | 否    | 实体在输入字符串中的终止位置。 |
810
811## Calendar<sup>8+</sup>
812
813提供历法相关的能力,包括历法名称获取和日期计算等。
814
815### setTime<sup>8+</sup>
816
817setTime(date: Date): void
818
819设置日历对象内部的时间、日期。
820
821**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
822
823**系统能力:** SystemCapability.Global.I18n
824
825**参数:**
826
827| 参数名  | 类型   | 必填   | 说明                |
828| ---- | ---- | ---- | ----------------- |
829| date | Date | 是    | 时间、日期。说明:月份从0开始计数,例如0表示一月。 |
830
831**示例:**
832  ```ts
833  let calendar: i18n.Calendar = i18n.getCalendar('en-US', 'gregory');
834  let date: Date = new Date(2021, 10, 7, 8, 0, 0); // 时间日期为2021.11.07 08:00:00
835  calendar.setTime(date);
836  ```
837
838
839### setTime<sup>8+</sup>
840
841setTime(time: number): void
842
843设置日历对象内部的时间、日期。
844
845**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
846
847**系统能力:** SystemCapability.Global.I18n
848
849**参数:**
850
851| 参数名  | 类型     | 必填   | 说明                                       |
852| ---- | ------ | ---- | ---------------------------------------- |
853| time | number | 是    | Unix时间戳,表示从1970.1.1&nbsp;00:00:00&nbsp;GMT逝去的毫秒数。 |
854
855**示例:**
856  ```ts
857  let calendar: i18n.Calendar = i18n.getCalendar('en-US', 'gregory');
858  calendar.setTime(10540800000);
859  ```
860
861### set<sup>8+</sup>
862
863set(year: number, month: number, date:number, hour?: number, minute?: number, second?: number): void
864
865设置日历对象的年、月、日、时、分、秒。
866
867**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
868
869**系统能力:** SystemCapability.Global.I18n
870
871**参数:**
872
873| 参数名    | 类型     | 必填   | 说明     |
874| ------ | ------ | ---- | ------ |
875| year   | number | 是    | 设置的年。  |
876| month  | number | 是    | 设置的月。说明:月份从0开始计数,例如0表示一月。  |
877| date   | number | 是    | 设置的日。  |
878| hour   | number | 否    | 设置的小时。默认值:系统当前时间。 |
879| minute | number | 否    | 设置的分钟。默认值:系统当前时间。 |
880| second | number | 否    | 设置的秒。默认值:系统当前时间。 |
881
882**示例:**
883  ```ts
884  let calendar: i18n.Calendar = i18n.getCalendar('zh-Hans');
885  calendar.set(2021, 10, 1, 8, 0, 0); // 设置时间日期为2021.11.1 08:00:00
886  ```
887
888### setTimeZone<sup>8+</sup>
889
890setTimeZone(timezone: string): void
891
892设置日历对象的时区。
893
894**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
895
896**系统能力:** SystemCapability.Global.I18n
897
898**参数:**
899
900| 参数名      | 类型     | 必填   | 说明                        |
901| -------- | ------ | ---- | ------------------------- |
902| timezone | string | 是    | 合法的时区ID,如“Asia/Shanghai”。 |
903
904**示例:**
905  ```ts
906  let calendar: i18n.Calendar = i18n.getCalendar('zh-Hans');
907  calendar.setTimeZone('Asia/Shanghai');
908  ```
909
910
911### getTimeZone<sup>8+</sup>
912
913getTimeZone(): string
914
915获取日历对象的时区ID。
916
917**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
918
919**系统能力:** SystemCapability.Global.I18n
920
921**返回值:**
922
923| 类型     | 说明         |
924| ------ | ---------- |
925| string | 表示时区ID的字符串。 |
926
927**示例:**
928  ```ts
929  let calendar: i18n.Calendar = i18n.getCalendar('zh-Hans');
930  calendar.setTimeZone('Asia/Shanghai');
931  let timezone: string = calendar.getTimeZone(); // timezone = 'Asia/Shanghai'
932  ```
933
934
935### getFirstDayOfWeek<sup>8+</sup>
936
937getFirstDayOfWeek(): number
938
939获取日历对象的周起始日。
940
941**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
942
943**系统能力:** SystemCapability.Global.I18n
944
945**返回值:**
946
947| 类型     | 说明                    |
948| ------ | --------------------- |
949| number | 周起始日,1代表周日,7代表周六。 |
950
951**示例:**
952  ```ts
953  let calendar: i18n.Calendar = i18n.getCalendar('en-US', 'gregory');
954  let firstDayOfWeek: number = calendar.getFirstDayOfWeek(); // firstDayOfWeek = 1
955  ```
956
957
958### setFirstDayOfWeek<sup>8+</sup>
959
960setFirstDayOfWeek(value: number): void
961
962设置日历对象的周起始日。
963
964**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
965
966**系统能力:** SystemCapability.Global.I18n
967
968**参数:**
969
970| 参数名   | 类型     | 必填   | 说明                    |
971| ----- | ------ | ---- | --------------------- |
972| value | number | 是    | 一周的起始日,1代表周日,7代表周六。 |
973
974**示例:**
975  ```ts
976  let calendar: i18n.Calendar = i18n.getCalendar('zh-Hans');
977  calendar.setFirstDayOfWeek(3);
978  let firstDayOfWeek: number = calendar.getFirstDayOfWeek(); // firstDayOfWeek = 3
979  ```
980
981### getMinimalDaysInFirstWeek<sup>8+</sup>
982
983getMinimalDaysInFirstWeek(): number
984
985获取日历对象一年中第一周的最小天数。
986
987**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
988
989**系统能力:** SystemCapability.Global.I18n
990
991**返回值:**
992
993| 类型     | 说明           |
994| ------ | ------------ |
995| number | 一年中第一周的最小天数。 |
996
997**示例:**
998  ```ts
999  let calendar: i18n.Calendar = i18n.getCalendar('zh-Hans');
1000  let minimalDaysInFirstWeek: number = calendar.getMinimalDaysInFirstWeek(); // minimalDaysInFirstWeek = 1
1001  ```
1002
1003
1004### setMinimalDaysInFirstWeek<sup>8+</sup>
1005
1006setMinimalDaysInFirstWeek(value: number): void
1007
1008设置日历对象一年中第一周的最小天数。
1009
1010**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1011
1012**系统能力:** SystemCapability.Global.I18n
1013
1014**参数:**
1015
1016| 参数名   | 类型     | 必填   | 说明           |
1017| ----- | ------ | ---- | ------------ |
1018| value | number | 是    | 一年中第一周的最小天数。 |
1019
1020**示例:**
1021  ```ts
1022  let calendar: i18n.Calendar = i18n.getCalendar('zh-Hans');
1023  calendar.setMinimalDaysInFirstWeek(3);
1024  let minimalDaysInFirstWeek: number = calendar.getMinimalDaysInFirstWeek(); // minimalDaysInFirstWeek = 3
1025  ```
1026
1027
1028### get<sup>8+</sup>
1029
1030get(field: string): number
1031
1032获取日历对象中日历属性的值。
1033
1034**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1035
1036**系统能力:** SystemCapability.Global.I18n
1037
1038**参数:**
1039
1040| 参数名   | 类型     | 必填   | 说明                                       |
1041| ----- | ------ | ---- | ---------------------------------------- |
1042| field | string | 是    | 指定的日历属性,目前支持的属性值请参考下表。 |
1043
1044
1045| 属性名称   | 说明                                       |
1046| ----- | ---------------------------------------- |
1047| era | 纪元,例如公历中的公元前或者公元后。 |
1048| year | 年。 |
1049| month | 月。说明:月份从0开始计数,例如0表示一月。 |
1050| date | 日。 |
1051| hour | 挂钟小时数。 |
1052| hour_of_day | 一天中的第几小时。 |
1053| minute | 分。 |
1054| second | 秒。 |
1055| millisecond | 毫秒。 |
1056| week_of_year | 一年中的第几周,按照星期计算周,注意:第一周的归属算法各地有区别。 |
1057| year_woy | 一年中的第几周,按照数值计算周,例如一年中前1~7日属于第一周。 |
1058| week_of_month | 一个月中的第几周,按照星期计算周。 |
1059| day_of_week_in_month | 一月中的第几周,按照数值计算周,例如1-7日属于第一周。 |
1060| day_of_year | 一年中的第几天。 |
1061| day_of_week | 一周中的第几天(星期)。 |
1062| milliseconds_in_day | 一天中的第几毫秒。 |
1063| zone_offset | 以毫秒计时的时区固定偏移量(不含夏令时)。 |
1064| dst_offset | 以毫秒计时的夏令时偏移量。 |
1065| dow_local | 本地星期。 |
1066| extended_year | 扩展的年份数值,支持负数。 |
1067| julian_day | 儒略日,与当前时区相关。 |
1068| is_leap_month | 是否为闰月。 |
1069
1070**返回值:**
1071
1072| 类型     | 说明                                       |
1073| ------ | ---------------------------------------- |
1074| number | 日历属性的值,如当前Calendar对象的内部日期的年份为1990,get('year')返回1990。 |
1075
1076**示例:**
1077  ```ts
1078  let calendar: i18n.Calendar = i18n.getCalendar('zh-Hans');
1079  calendar.set(2021, 10, 1, 8, 0, 0); // 设置时间日期为2021.11.1 08:00:00
1080  let hourOfDay: number = calendar.get('hour_of_day'); // hourOfDay = 8
1081  ```
1082
1083
1084### getDisplayName<sup>8+</sup>
1085
1086getDisplayName(locale: string): string
1087
1088获取日历对象名称在指定语言下的翻译。
1089
1090**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1091
1092**系统能力:** SystemCapability.Global.I18n
1093
1094**参数:**
1095
1096| 参数名    | 类型     | 必填   | 说明                                       |
1097| ------ | ------ | ---- | ---------------------------------------- |
1098| locale | string | 是    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成。 |
1099
1100**返回值:**
1101
1102| 类型     | 说明                  |
1103| ------ | ------------------- |
1104| string | 日历对象名称在指定语言下的翻译。如buddhist在en-US上显示的名称为“Buddhist&nbsp;Calendar”。|
1105
1106**示例:**
1107  ```ts
1108  let calendar: i18n.Calendar = i18n.getCalendar('en-US', 'buddhist');
1109  let calendarName: string = calendar.getDisplayName('zh'); // calendarName = '佛历'
1110  ```
1111
1112
1113### isWeekend<sup>8+</sup>
1114
1115isWeekend(date?: Date): boolean
1116
1117判断指定的日期在日历对象中是否为周末。
1118
1119**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1120
1121**系统能力:** SystemCapability.Global.I18n
1122
1123**参数:**
1124
1125| 参数名  | 类型   | 必填   | 说明                                       |
1126| ---- | ---- | ---- | ---------------------------------------- |
1127| date | Date | 否    | 时间、日期。说明:月份从0开始计数,例如0表示一月。<br>默认值:日历对象的当前日期。 |
1128
1129**返回值:**
1130
1131| 类型      | 说明                                  |
1132| ------- | ----------------------------------- |
1133| boolean | true表示指定的日期是周末,false表示指定的日期不是周末。 |
1134
1135**示例:**
1136  ```ts
1137  let calendar: i18n.Calendar = i18n.getCalendar('zh-Hans');
1138  calendar.set(2021, 11, 11, 8, 0, 0); // 设置时间为2021.12.11 08:00:00
1139  let isWeekend: boolean = calendar.isWeekend(); // isWeekend = true
1140  let date: Date = new Date(2011, 11, 6, 9, 0, 0); // 时间日期为2011.12.06 09:00:00
1141  isWeekend = calendar.isWeekend(date); // isWeekend = false
1142  ```
1143
1144
1145### add<sup>11+</sup>
1146
1147add(field: string, amount: number): void
1148
1149对日历对象中的表示时间日期的日历属性值进行加减操作。
1150
1151**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1152
1153**系统能力:** SystemCapability.Global.I18n
1154
1155**参数:**
1156
1157| 参数名  | 类型   | 必填   | 说明                                       |
1158| ---- | ---- | ---- | ---------------------------------------- |
1159| field | string | 是    | 指定的日历属性,目前支持的属性值有&nbsp;year,&nbsp;month,&nbsp;week_of_year,&nbsp;week_of_month,&nbsp;date,&nbsp;day_of_year,&nbsp;day_of_week,&nbsp;day_of_week_in_month,&nbsp;hour,&nbsp;hour_of_day,&nbsp;minute,&nbsp;second,&nbsp;millisecond。<br>各取值代表的含义请参考[get](#get8)。 |
1160| amount | number | 是    | 进行加减操作的具体数值。 |
1161
1162**错误码:**
1163
1164以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
1165
1166| 错误码ID  | 错误信息                   |
1167| ------ | ---------------------- |
1168| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
1169| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
1170
1171**示例:**
1172  ```ts
1173  import { BusinessError } from '@kit.BasicServicesKit';
1174
1175  try {
1176    let calendar: i18n.Calendar = i18n.getCalendar('zh-Hans');
1177    calendar.set(2021, 11, 11, 8, 0, 0); // 设置时间日期为2021.12.11 08:00:00
1178    calendar.add('year', 8); // 2021 + 8
1179    let year: number = calendar.get('year'); // year = 2029
1180  } catch (error) {
1181    let err: BusinessError = error as BusinessError;
1182    console.error(`call Calendar.add failed, error code: ${err.code}, message: ${err.message}.`);
1183  }
1184  ```
1185
1186
1187### getTimeInMillis<sup>11+</sup>
1188
1189getTimeInMillis(): number
1190
1191获取当前日历对象的时间戳。
1192
1193**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1194
1195**系统能力:** SystemCapability.Global.I18n
1196
1197**返回值:**
1198
1199| 类型      | 说明                                  |
1200| ------- | ----------------------------------- |
1201| number | Unix时间戳,表示从1970.1.1&nbsp;00:00:00&nbsp;GMT逝去的毫秒数。 |
1202
1203**示例:**
1204  ```ts
1205  let calendar: i18n.Calendar = i18n.getCalendar('zh-Hans');
1206  calendar.setTime(5000);
1207  let millisecond: number = calendar.getTimeInMillis(); // millisecond = 5000
1208  ```
1209
1210
1211### compareDays<sup>11+</sup>
1212
1213compareDays(date: Date): number
1214
1215比较日历对象当前日期和指定日期相差的天数。
1216
1217**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1218
1219**系统能力:** SystemCapability.Global.I18n
1220
1221**参数:**
1222
1223| 参数名  | 类型   | 必填   | 说明                                       |
1224| ---- | ---- | ---- | ---------------------------------------- |
1225| date | Date | 是    | 时间、日期。说明:月份从0开始计数,例如0表示一月。 |
1226
1227**返回值:**
1228
1229| 类型      | 说明                                  |
1230| ------- | ----------------------------------- |
1231| number | 相差的天数,正数表示日历时间更早,负数表示指定时间更早。<br>按毫秒级的精度,不足一天按一天计。 |
1232
1233**错误码:**
1234
1235以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1236
1237| 错误码ID  | 错误信息                   |
1238| ------ | ---------------------- |
1239| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
1240
1241**示例:**
1242  ```ts
1243  import { BusinessError } from '@kit.BasicServicesKit';
1244
1245  try {
1246    let calendar: i18n.Calendar = i18n.getCalendar('zh-Hans');
1247    calendar.setTime(5000);
1248    let date: Date = new Date(6000);
1249    let diff: number = calendar.compareDays(date); // diff = 1
1250  } catch (error) {
1251    let err: BusinessError = error as BusinessError;
1252    console.error(`call Calendar.compareDays failed, error code: ${err.code}, message: ${err.message}.`);
1253  }
1254  ```
1255
1256## PhoneNumberFormat<sup>8+</sup>
1257
1258提供电话号码相关的能力,包括电话号码有效性判断、格式化和归属地获取。
1259
1260### constructor<sup>8+</sup>
1261
1262constructor(country: string, options?: PhoneNumberFormatOptions)
1263
1264创建电话号码格式化对象。
1265
1266**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1267
1268**系统能力:** SystemCapability.Global.I18n
1269
1270**参数:**
1271
1272| 参数名     | 类型                                       | 必填   | 说明               |
1273| ------- | ---------------------------------------- | ---- | ---------------- |
1274| country | string                                   | 是    | 表示电话号码所属的国家地区代码。 |
1275| options | [PhoneNumberFormatOptions](#phonenumberformatoptions8) | 否    | 电话号码格式化时设置的配置项。默认值:NATIONAL。  |
1276
1277**示例:**
1278  ```ts
1279  let option: i18n.PhoneNumberFormatOptions = { type: 'E164' };
1280  let phoneNumberFormat: i18n.PhoneNumberFormat = new i18n.PhoneNumberFormat('CN', option);
1281  ```
1282
1283### isValidNumber<sup>8+</sup>
1284
1285isValidNumber(phoneNumber: string): boolean
1286
1287判断电话号码是否为当前电话号码格式化对象中国家的有效号码。
1288
1289**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1290
1291**系统能力:** SystemCapability.Global.I18n
1292
1293**参数:**
1294
1295| 参数名    | 类型     | 必填   | 说明        |
1296| ------ | ------ | ---- | --------- |
1297| phoneNumber | string | 是    | 待判断的电话号码。 |
1298
1299**返回值:**
1300
1301| 类型      | 说明                                    |
1302| ------- | ------------------------------------- |
1303| boolean | true表示电话号码有效,false表示电话号码无效。 |
1304
1305**示例:**
1306  ```ts
1307  let formatter: i18n.PhoneNumberFormat = new i18n.PhoneNumberFormat('CN');
1308  let isValidNumber: boolean = formatter.isValidNumber('158****2312'); // isValidNumber = true
1309  ```
1310
1311
1312### format<sup>8+</sup>
1313
1314format(phoneNumber: string): string
1315
1316对电话号码进行格式化。
1317
1318> **说明**
1319> 从API version 12开始,支持对拨号中的电话号码进行格式化。
1320
1321**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1322
1323**系统能力:** SystemCapability.Global.I18n
1324
1325**参数:**
1326
1327| 参数名    | 类型     | 必填   | 说明         |
1328| ------ | ------ | ---- | ---------- |
1329| phoneNumber | string | 是    | 待格式化的电话号码。 |
1330
1331**返回值:**
1332
1333| 类型     | 说明         |
1334| ------ | ---------- |
1335| string | 格式化后的电话号码。 |
1336
1337**示例:**
1338  ```ts
1339  let formatter: i18n.PhoneNumberFormat = new i18n.PhoneNumberFormat('CN');
1340  // formattedPhoneNumber = '158 **** 2312'
1341  let formattedPhoneNumber: string = formatter.format('158****2312');
1342
1343  // 拨号中的电话号码格式化
1344  let option: i18n.PhoneNumberFormatOptions = { type: 'TYPING' };
1345  let typingFormatter: i18n.PhoneNumberFormat = new i18n.PhoneNumberFormat('CN', option);
1346  let phoneNumber: string = '130493';
1347  let formatResult: string = '';
1348  for (let i = 0; i < phoneNumber.length; i++) {
1349    formatResult += phoneNumber.charAt(i);
1350    formatResult = typingFormatter.format(formatResult); // formatResult = '130 493'
1351  }
1352  ```
1353
1354### getLocationName<sup>9+</sup>
1355
1356getLocationName(phoneNumber: string, locale: string): string
1357
1358获取电话号码归属地。
1359
1360**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1361
1362**系统能力:** SystemCapability.Global.I18n
1363
1364**参数:**
1365
1366| 参数名    | 类型     | 必填   | 说明   |
1367| ------ | ------ | ---- | ---- |
1368| phoneNumber | string | 是    | 电话号码。获取其他地区电话号码的归属地时,需要在电话号码前加00+国际区号。 |
1369| locale | string | 是    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成。 |
1370
1371**返回值:**
1372
1373| 类型     | 说明       |
1374| ------ | -------- |
1375| string | 电话号码归属地。无效号码时返回空字符串。 |
1376
1377**示例:**
1378  ```ts
1379  let phonenumberFormat: i18n.PhoneNumberFormat = new i18n.PhoneNumberFormat('CN');
1380  let locationName: string = phonenumberFormat.getLocationName('158****2345', 'zh-CN'); // locationName = '广东省湛江市'
1381  let locName: string = phonenumberFormat.getLocationName('0039312****789', 'zh-CN'); // locName = '意大利'
1382  ```
1383
1384
1385## PhoneNumberFormatOptions<sup>8+</sup>
1386
1387电话号码格式化时可设置的配置项。
1388
1389**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1390
1391**系统能力:** SystemCapability.Global.I18n
1392
1393| 名称   | 类型     | 只读   | 可选   | 说明                                       |
1394| ---- | ------ | ---- | ---- | ---------------------------------------- |
1395| type | string | 否    | 是    | 表示对电话号码格式化的类型,取值包括:'E164',&nbsp;'INTERNATIONAL',&nbsp;'NATIONAL',&nbsp;'RFC3966',&nbsp;'TYPING'。<br>-在API version 8版本,type为必填项。 <br>-API version 9版本开始,type为选填项。<br>-API version 12版本开始支持TYPING,表示对拨号中的电话号码实时格式化。|
1396
1397
1398## UnitInfo<sup>8+</sup>
1399
1400度量衡单位信息。
1401
1402**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1403
1404**系统能力:** SystemCapability.Global.I18n
1405
1406| 名称            | 类型     | 只读   | 可选   | 说明                                       |
1407| ------------- | ------ | ---- | ---- | ---------------------------------------- |
1408| unit          | string | 否    | 否    | 单位的名称,如:'meter',&nbsp;'inch',&nbsp;'cup'等。 |
1409| measureSystem | string | 否    | 否    | 单位的度量体系,取值包括:'SI',&nbsp;'US',&nbsp;'UK'。 |
1410
1411
1412## i18n.getInstance<sup>8+</sup>
1413
1414getInstance(locale?: string): IndexUtil
1415
1416创建并返回IndexUtil对象。
1417
1418**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1419
1420**系统能力:** SystemCapability.Global.I18n
1421
1422**参数:**
1423
1424| 参数名    | 类型     | 必填   | 说明                           |
1425| ------ | ------ | ---- | ---------------------------- |
1426| locale | string | 否    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成。<br>默认值:系统当前区域ID。 |
1427
1428**返回值:**
1429
1430| 类型                       | 说明                    |
1431| ------------------------ | --------------------- |
1432| [IndexUtil](#indexutil8) | 根据区域ID创建的IndexUtil对象。 |
1433
1434**示例:**
1435  ```ts
1436  let indexUtil: i18n.IndexUtil = i18n.getInstance('zh-CN');
1437  ```
1438
1439
1440## IndexUtil<sup>8+</sup>
1441
1442提供索引相关的能力,包括区域索引列表和文本索引值获取。
1443
1444### getIndexList<sup>8+</sup>
1445
1446getIndexList(): Array&lt;string&gt;
1447
1448获取当前区域的索引列表。
1449
1450**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1451
1452**系统能力:** SystemCapability.Global.I18n
1453
1454**返回值:**
1455
1456| 类型                  | 说明                 |
1457| ------------------- | ------------------ |
1458| Array&lt;string&gt; | 当前区域的索引列表。第一个元素和最后一个元素为“...”。 |
1459
1460**示例:**
1461  ```ts
1462  let indexUtil: i18n.IndexUtil = i18n.getInstance('zh-CN');
1463  // indexList = [ '...', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
1464  //              'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '...' ]
1465  let indexList: Array<string> = indexUtil.getIndexList();
1466  ```
1467
1468
1469### addLocale<sup>8+</sup>
1470
1471addLocale(locale: string): void
1472
1473在当前区域的索引列表中,添加新区域的索引列表,形成复合列表。
1474
1475**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1476
1477**系统能力:** SystemCapability.Global.I18n
1478
1479**参数:**
1480
1481| 参数名    | 类型     | 必填   | 说明                           |
1482| ------ | ------ | ---- | ---------------------------- |
1483| locale | string | 是    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成。 |
1484
1485**示例:**
1486  ```ts
1487  let indexUtil: i18n.IndexUtil = i18n.getInstance('zh-CN');
1488  indexUtil.addLocale('en-US');
1489  ```
1490
1491### getIndex<sup>8+</sup>
1492
1493getIndex(text: string): string
1494
1495获取输入文本对应的索引值。
1496
1497**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1498
1499**系统能力:** SystemCapability.Global.I18n
1500
1501**参数:**
1502
1503| 参数名  | 类型     | 必填   | 说明           |
1504| ---- | ------ | ---- | ------------ |
1505| text | string | 是    | 输入文本。 |
1506
1507**返回值:**
1508
1509| 类型     | 说明          |
1510| ------ | ----------- |
1511| string | 输入文本对应的索引值。无合适索引时返回空字符串。 |
1512
1513**示例:**
1514  ```ts
1515  let indexUtil: i18n.IndexUtil = i18n.getInstance('zh-CN');
1516  let index: string = indexUtil.getIndex('hi'); // index = 'H'
1517  ```
1518
1519
1520## i18n.getLineInstance<sup>8+</sup>
1521
1522getLineInstance(locale: string): BreakIterator
1523
1524获取用于获取可换行点的BreakIterator对象。BreakIterator对象内部维护一个换行迭代器,可以用于访问各个可换行点。
1525
1526**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1527
1528**系统能力:** SystemCapability.Global.I18n
1529
1530**参数:**
1531
1532| 参数名    | 类型     | 必填   | 说明                                       |
1533| ------ | ------ | ---- | ---------------------------------------- |
1534| locale | string | 是    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成。<br>生成的[BreakIterator](#breakiterator8)将按照指定区域的规则计算可换行点的位置。 |
1535
1536**返回值:**
1537
1538| 类型                               | 说明          |
1539| -------------------------------- | ----------- |
1540| [BreakIterator](#breakiterator8) | 可换行点处理器。 |
1541
1542**示例:**
1543  ```ts
1544  let iterator: i18n.BreakIterator = i18n.getLineInstance('en');
1545  ```
1546
1547
1548## BreakIterator<sup>8+</sup>
1549
1550提供文本换行相关的能力,包括可换行点的获取、移动和识别等。
1551
1552### setLineBreakText<sup>8+</sup>
1553
1554setLineBreakText(text: string): void
1555
1556设置BreakIterator对象要处理的文本。
1557
1558**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1559
1560**系统能力:** SystemCapability.Global.I18n
1561
1562**参数:**
1563
1564| 参数名  | 类型     | 必填   | 说明                      |
1565| ---- | ------ | ---- | ----------------------- |
1566| text | string | 是    | 输入文本。 |
1567
1568**示例:**
1569  ```ts
1570  let iterator: i18n.BreakIterator = i18n.getLineInstance('en');
1571  iterator.setLineBreakText('Apple is my favorite fruit.'); // 设置处理文本
1572  ```
1573
1574
1575### getLineBreakText<sup>8+</sup>
1576
1577getLineBreakText(): string
1578
1579获取BreakIterator对象当前处理的文本。
1580
1581**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1582
1583**系统能力:** SystemCapability.Global.I18n
1584
1585**返回值:**
1586
1587| 类型     | 说明                     |
1588| ------ | ---------------------- |
1589| string | BreakIterator对象正在处理的文本。 |
1590
1591**示例:**
1592  ```ts
1593  let iterator: i18n.BreakIterator = i18n.getLineInstance('en');
1594  iterator.setLineBreakText('Apple is my favorite fruit.');
1595  let breakText: string = iterator.getLineBreakText(); // breakText = 'Apple is my favorite fruit.'
1596  ```
1597
1598
1599### current<sup>8+</sup>
1600
1601current(): number
1602
1603获取换行迭代器在当前处理文本中的位置。
1604
1605**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1606
1607**系统能力:** SystemCapability.Global.I18n
1608
1609**返回值:**
1610
1611| 类型     | 说明                          |
1612| ------ | --------------------------- |
1613| number | 获取换行迭代器在当前处理的文本中的位置。 |
1614
1615**示例:**
1616  ```ts
1617  let iterator: i18n.BreakIterator = i18n.getLineInstance('en');
1618  iterator.setLineBreakText('Apple is my favorite fruit.');
1619  let currentPos: number = iterator.current(); // currentPos = 0
1620  ```
1621
1622
1623### first<sup>8+</sup>
1624
1625first(): number
1626
1627将换行迭代器移动到第一个可换行点。第一个可换行点总是在被处理文本的起始位置。
1628
1629**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1630
1631**系统能力:** SystemCapability.Global.I18n
1632
1633**返回值:**
1634
1635| 类型     | 说明                |
1636| ------ | ----------------- |
1637| number | 被处理文本的第一个可换行点的偏移量。 |
1638
1639**示例:**
1640  ```ts
1641  let iterator: i18n.BreakIterator = i18n.getLineInstance('en');
1642  iterator.setLineBreakText('Apple is my favorite fruit.');
1643  let firstPos: number = iterator.first(); // firstPos = 0
1644  ```
1645
1646
1647### last<sup>8+</sup>
1648
1649last(): number
1650
1651将换行迭代器移动到最后一个可换行点。最后一个可换行点总是在被处理文本末尾的下一个位置。
1652
1653**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1654
1655**系统能力:** SystemCapability.Global.I18n
1656
1657**返回值:**
1658
1659| 类型     | 说明                 |
1660| ------ | ------------------ |
1661| number | 被处理文本的最后一个可换行点的偏移量。 |
1662
1663**示例:**
1664  ```ts
1665  let iterator: i18n.BreakIterator = i18n.getLineInstance('en');
1666  iterator.setLineBreakText('Apple is my favorite fruit.');
1667  let lastPos: number = iterator.last(); // lastPos = 27
1668  ```
1669
1670
1671### next<sup>8+</sup>
1672
1673next(index?: number): number
1674
1675将换行迭代器向后移动index个可换行点。
1676
1677**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1678
1679**系统能力:** SystemCapability.Global.I18n
1680
1681**参数:**
1682
1683| 参数名   | 类型     | 必填   | 说明                                       |
1684| ----- | ------ | ---- | ---------------------------------------- |
1685| index | number | 否    | 换行迭代器将要移动的可换行点数,取值为整数。<br>正数表示向后移动index个可换行点,负数表示向前移动index个可换行点。<br>默认值:1。 |
1686
1687**返回值:**
1688
1689| 类型     | 说明                                       |
1690| ------ | ---------------------------------------- |
1691| number | 移动index个可换行点后,当前换行迭代器在文本中的位置。<br>若移动index个可换行点后超出了所处理的文本的长度范围,返回-1。 |
1692
1693**示例:**
1694  ```ts
1695  let iterator: i18n.BreakIterator = i18n.getLineInstance('en');
1696  iterator.setLineBreakText('Apple is my favorite fruit.');
1697  let pos: number = iterator.first(); // pos = 0
1698  pos = iterator.next(); // pos = 6
1699  pos = iterator.next(10); // pos = -1
1700  ```
1701
1702
1703### previous<sup>8+</sup>
1704
1705previous(): number
1706
1707将换行迭代器向前移动一个可换行点。
1708
1709**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1710
1711**系统能力:** SystemCapability.Global.I18n
1712
1713**返回值:**
1714
1715| 类型     | 说明                                       |
1716| ------ | ---------------------------------------- |
1717| number | 移动到前一个可换行点后,当前换行迭代器在文本中的位置。<br>若移动后超出了所处理的文本的长度范围,返回-1。 |
1718
1719**示例:**
1720  ```ts
1721  let iterator: i18n.BreakIterator = i18n.getLineInstance('en');
1722  iterator.setLineBreakText('Apple is my favorite fruit.');
1723  let pos: number = iterator.first(); // pos = 0
1724  pos = iterator.next(3); // pos = 12
1725  pos = iterator.previous(); // pos = 9
1726  ```
1727
1728
1729### following<sup>8+</sup>
1730
1731following(offset: number): number
1732
1733将换行迭代器移动到指定位置后面一个可换行点。
1734
1735**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1736
1737**系统能力:** SystemCapability.Global.I18n
1738
1739**参数:**
1740
1741| 参数名    | 类型     | 必填   | 说明                                       |
1742| ------ | ------ | ---- | ---------------------------------------- |
1743| offset | number | 是    | 将换行迭代器移动到文本指定位置的后面一个可换行点。 |
1744
1745**返回值:**
1746
1747| 类型     | 说明                                       |
1748| ------ | ---------------------------------------- |
1749| number | 换行迭代器移动后的位置。若offset所指定位置的下一个可换行点超出了文本的范围,则返回-1。 |
1750
1751**示例:**
1752  ```ts
1753  let iterator: i18n.BreakIterator = i18n.getLineInstance('en');
1754  iterator.setLineBreakText('Apple is my favorite fruit.');
1755  let pos: number = iterator.following(0); // pos = 6
1756  pos = iterator.following(100); // pos = -1
1757  pos = iterator.current(); // pos = 27
1758  ```
1759
1760
1761### isBoundary<sup>8+</sup>
1762
1763isBoundary(offset: number): boolean
1764
1765判断指定位置是否为可换行点。
1766
1767**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1768
1769**系统能力:** SystemCapability.Global.I18n
1770
1771**参数:**
1772
1773| 参数名    | 类型     | 必填   | 说明          |
1774| ------ | ------ | ---- | ----------- |
1775| offset | number | 是    | 文本指定位置。 |
1776
1777**返回值:**
1778
1779| 类型      | 说明                              |
1780| ------- | ------------------------------- |
1781| boolean | true表示offset指定的文本位置是一个可换行点,false表示offset指定的文本位置不是一个可换行点。<br>返回true时,会将换行迭代器移动到offset指定的位置,否则相当于调用following。 |
1782
1783**示例:**
1784  ```ts
1785  let iterator: i18n.BreakIterator = i18n.getLineInstance('en');
1786  iterator.setLineBreakText('Apple is my favorite fruit.');
1787  let isBoundary: boolean = iterator.isBoundary(0); // isBoundary = true;
1788  isBoundary = iterator.isBoundary(5); // isBoundary = false;
1789  ```
1790
1791
1792## i18n.getTimeZone
1793
1794getTimeZone(zoneID?: string): TimeZone
1795
1796获取时区ID对应的时区对象。
1797
1798**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1799
1800**系统能力:** SystemCapability.Global.I18n
1801
1802**参数:**
1803
1804| 参数名    | 类型     | 必填   | 说明    |
1805| ------ | ------ | ---- | ----- |
1806| zoneID | string | 否    | 时区ID。默认值:系统时区。 |
1807
1808**返回值:**
1809
1810| 类型       | 说明           |
1811| -------- | ------------ |
1812| [TimeZone](#timezone) | 时区ID对应的时区对象。 |
1813
1814**示例:**
1815  ```ts
1816  let timezone: i18n.TimeZone = i18n.getTimeZone('Asia/Shanghai');
1817  ```
1818
1819## TimeZone
1820
1821提供时区相关的能力,包括时区名称翻译、偏移量获取和跳变规则获取等。
1822
1823### getID
1824
1825getID(): string
1826
1827获取时区对象的ID。
1828
1829**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1830
1831**系统能力:** SystemCapability.Global.I18n
1832
1833**返回值:**
1834
1835| 类型     | 说明           |
1836| ------ | ------------ |
1837| string | 时区对象对应的时区ID。 |
1838
1839**示例:**
1840  ```ts
1841  let timezone: i18n.TimeZone = i18n.getTimeZone('Asia/Shanghai');
1842  let timezoneID: string = timezone.getID(); // timezoneID = 'Asia/Shanghai'
1843  ```
1844
1845
1846### getDisplayName
1847
1848getDisplayName(locale?: string, isDST?: boolean): string
1849
1850获取时区对象名称在指定语言下的翻译。
1851
1852**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1853
1854**系统能力:** SystemCapability.Global.I18n
1855
1856**参数:**
1857
1858| 参数名    | 类型      | 必填   | 说明                   |
1859| ------ | ------- | ---- | -------------------- |
1860| locale | string  | 否    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成。默认值:系统当前区域ID。                |
1861| isDST  | boolean | 否    | true表示显示夏令时信息,false表示不显示夏令时信息。默认值:false。 |
1862
1863**返回值:**
1864
1865| 类型     | 说明            |
1866| ------ | ------------- |
1867| string | 时区对象名称在指定语言下的翻译。 |
1868
1869**示例:**
1870  ```ts
1871  let timezone: i18n.TimeZone = i18n.getTimeZone('Asia/Shanghai');
1872  let timezoneName: string = timezone.getDisplayName('zh-CN', false); // timezoneName = '中国标准时间'
1873  ```
1874
1875
1876### getRawOffset
1877
1878getRawOffset(): number
1879
1880获取时区对象所表示时区的原始偏移量。
1881
1882**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1883
1884**系统能力:** SystemCapability.Global.I18n
1885
1886**返回值:**
1887
1888| 类型     | 说明                  |
1889| ------ | ------------------- |
1890| number | 时区的原始偏移量,单位是毫秒。 |
1891
1892**示例:**
1893  ```ts
1894  let timezone: i18n.TimeZone = i18n.getTimeZone('Asia/Shanghai');
1895  let offset: number = timezone.getRawOffset(); // offset = 28800000
1896  ```
1897
1898
1899### getOffset
1900
1901getOffset(date?: number): number
1902
1903获取某一时刻时区对象所表示时区的偏移量。
1904
1905**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1906
1907**系统能力:** SystemCapability.Global.I18n
1908
1909**参数:**
1910
1911| 参数名    | 类型     | 必填   | 说明     |
1912| ------ | ------ | ---- | ------ |
1913| date | number | 否    | 待计算时区偏移量的时刻,单位是毫秒。默认值:系统时间。 |
1914
1915**返回值:**
1916
1917| 类型     | 说明                      |
1918| ------ | ----------------------- |
1919| number | 时区的偏移量,单位是毫秒。当处于夏令时时,时区偏移量为时区原始偏移量加夏令时偏移量。 |
1920
1921**示例:**
1922  ```ts
1923  let timezone: i18n.TimeZone = i18n.getTimeZone('Asia/Shanghai');
1924  let offset: number = timezone.getOffset(1234567890); // offset = 28800000
1925  ```
1926
1927
1928### getAvailableIDs<sup>9+</sup>
1929
1930static getAvailableIDs(): Array&lt;string&gt;
1931
1932获取系统支持的时区ID列表。
1933
1934**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1935
1936**系统能力:** SystemCapability.Global.I18n
1937
1938**返回值:**
1939
1940| 类型                  | 说明          |
1941| ------------------- | ----------- |
1942| Array&lt;string&gt; | 系统支持的时区ID列表。 |
1943
1944**示例:**
1945  ```ts
1946  // ids = ['America/Adak', 'America/Anchorage', 'America/Bogota', 'America/Denver', 'America/Los_Angeles', 'America/Montevideo', 'America/Santiago', 'America/Sao_Paulo', 'Asia/Ashgabat', 'Asia/Hovd', 'Asia/Jerusalem', 'Asia/Magadan', 'Asia/Omsk', 'Asia/Shanghai', 'Asia/Tokyo', 'Asia/Yerevan', 'Atlantic/Cape_Verde', 'Australia/Lord_Howe', 'Europe/Dublin', 'Europe/London', 'Europe/Moscow', 'Pacific/Auckland', 'Pacific/Easter', 'Pacific/Pago-Pago']
1947  let ids: Array<string> = i18n.TimeZone.getAvailableIDs();
1948  ```
1949
1950
1951### getAvailableZoneCityIDs<sup>9+</sup>
1952
1953static getAvailableZoneCityIDs(): Array&lt;string&gt;
1954
1955获取系统支持的时区城市ID列表。
1956
1957**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1958
1959**系统能力:** SystemCapability.Global.I18n
1960
1961**返回值:**
1962
1963| 类型                  | 说明            |
1964| ------------------- | ------------- |
1965| Array&lt;string&gt; | 系统支持的时区城市ID列表。 |
1966
1967**示例:**
1968  ```ts
1969  // cityIDs = ['Auckland', 'Magadan', 'Lord Howe Island', 'Tokyo', 'Shanghai', 'Hovd', 'Omsk', 'Ashgabat', 'Yerevan', 'Moscow', 'Tel Aviv', 'Dublin', 'London', 'Praia', 'Montevideo', 'Brasília', 'Santiago', 'Bogotá', 'Easter Island', 'Salt Lake City', 'Los Angeles', 'Anchorage', 'Adak', 'Pago Pago']
1970  let cityIDs: Array<string> = i18n.TimeZone.getAvailableZoneCityIDs();
1971  ```
1972
1973### getCityDisplayName<sup>9+</sup>
1974
1975static getCityDisplayName(cityID: string, locale: string): string
1976
1977获取时区城市名称在指定语言下的翻译。
1978
1979**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1980
1981**系统能力:** SystemCapability.Global.I18n
1982
1983**参数:**
1984
1985| 参数名    | 类型     | 必填   | 说明     |
1986| ------ | ------ | ---- | ------ |
1987| cityID | string | 是    | 时区城市ID。 |
1988| locale | string | 是    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成。  |
1989
1990**返回值:**
1991
1992| 类型     | 说明                 |
1993| ------ | ------------------ |
1994| string | 时区城市名称在指定语言下的翻译。 |
1995
1996**示例:**
1997  ```ts
1998  let displayName: string = i18n.TimeZone.getCityDisplayName('Shanghai', 'zh-CN'); // displayName = '上海 (中国)'
1999  ```
2000
2001
2002### getTimezoneFromCity<sup>9+</sup>
2003
2004static getTimezoneFromCity(cityID: string): TimeZone
2005
2006创建对应时区城市的时区对象。
2007
2008**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2009
2010**系统能力:** SystemCapability.Global.I18n
2011
2012**参数:**
2013
2014| 参数名    | 类型     | 必填   | 说明     |
2015| ------ | ------ | ---- | ------ |
2016| cityID | string | 是    | 时区城市ID,要求是系统支持的时区城市ID。 |
2017
2018**返回值:**
2019
2020| 类型       | 说明          |
2021| -------- | ----------- |
2022| TimeZone | 时区城市对应的时区对象。 |
2023
2024**示例:**
2025  ```ts
2026  let timezone: i18n.TimeZone = i18n.TimeZone.getTimezoneFromCity('Shanghai');
2027  ```
2028
2029### getTimezonesByLocation<sup>10+</sup>
2030
2031static getTimezonesByLocation(longitude: number, latitude: number): Array&lt;TimeZone&gt;
2032
2033创建地理位置对应的时区对象数组。
2034
2035**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2036
2037**系统能力:** SystemCapability.Global.I18n
2038
2039**参数:**
2040
2041| 参数名     | 类型     | 必填   | 说明     |
2042| --------- | ------ | ---- | ------ |
2043| longitude | number | 是    | 经度,范围[-180, 179.9),东经取正值,西经取负值。 |
2044| latitude  | number | 是    | 纬度,范围[-90, 89.9),北纬取正值,南纬取负值。 |
2045
2046**返回值:**
2047
2048| 类型       | 说明          |
2049| -------- | ----------- |
2050| Array&lt;[TimeZone](#timezone)&gt; | 时区对象数组,数组中对象对应的时区为该地理位置推荐的时区。 |
2051
2052**错误码:**
2053
2054以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
2055
2056| 错误码ID  | 错误信息                   |
2057| ------ | ---------------------- |
2058| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
2059| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
2060
2061
2062> **说明**
2063>
2064> 890001的报错信息请以接口的实际报错为准。
2065
2066**示例:**
2067  ```ts
2068  import { BusinessError } from '@kit.BasicServicesKit';
2069
2070  try {
2071    let timezoneArray: Array<i18n.TimeZone> = i18n.TimeZone.getTimezonesByLocation(-118.1, 34.0);
2072  } catch (error) {
2073    let err: BusinessError = error as BusinessError;
2074    console.error(`call TimeZone.getTimezonesByLocation failed, error code: ${err.code}, message: ${err.message}.`);
2075  }
2076  ```
2077
2078### getZoneRules<sup>20+</sup>
2079
2080getZoneRules(): ZoneRules
2081
2082获取时区跳变规则,时区的跳变逻辑参考[夏令时跳变](../../internationalization/i18n-dst-transition.md)。
2083
2084**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
2085
2086**系统能力:** SystemCapability.Global.I18n
2087
2088**返回值:**
2089
2090| 类型     | 说明                 |
2091| ------ | ------------------ |
2092| [ZoneRules](#zonerules20) | 时区跳变规则,包含跳变的时间点、跳变前后的偏移量信息。 |
2093
2094**示例:**
2095```ts
2096import { i18n } from '@kit.LocalizationKit';
2097
2098let tzId: string = 'America/Tijuana';
2099let timeZone: i18n.TimeZone = i18n.getTimeZone(tzId);
2100let zoneRules: i18n.ZoneRules = timeZone.getZoneRules();
2101let date = new Date(2025, 4, 13);
2102let zoneOffsetTransition: i18n.ZoneOffsetTransition =
2103    zoneRules.nextTransition(date.getTime()); // 获取2025年5月13日以后的下一个时区跳变对象
2104zoneOffsetTransition.getMilliseconds(); // 跳变点的时间戳: 1762074000000
2105zoneOffsetTransition.getOffsetAfter(); // 跳变后的偏移量: -28800000
2106zoneOffsetTransition.getOffsetBefore(); // 跳变前的偏移量: -25200000
2107// 将跳变点时间格式化
2108let dateTimeFormat: Intl.DateTimeFormat = new Intl.DateTimeFormat('en-US', {
2109  timeZone: tzId,
2110  dateStyle: 'long',
2111  timeStyle: 'long',
2112  hour12: false
2113});
2114let dateFormat: string =
2115  dateTimeFormat.format(new Date(zoneOffsetTransition.getMilliseconds())); // November 2, 2025, 1:00:00 PST
2116```
2117
2118## ZoneRules<sup>20+</sup>
2119
2120提供查询时区跳变规则的能力。
2121
2122### nextTransition<sup>20+</sup>
2123
2124nextTransition(date?: number): ZoneOffsetTransition
2125
2126获取指定时间的下一个时区跳变对象。
2127
2128**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
2129
2130**系统能力:** SystemCapability.Global.I18n
2131
2132**参数:**
2133
2134| 参数名    | 类型     | 必填   | 说明     |
2135| ------ | ------ | ---- | ------ |
2136| date | number | 否    | 从1970年1月1日0时0分0秒到指定时间之间的毫秒数,默认到当前系统时间之间的毫秒数,单位:毫秒。 |
2137
2138**返回值:**
2139
2140| 类型       | 说明         |
2141| -------- | ---------- |
2142| [ZoneOffsetTransition](#zoneoffsettransition20) | 时区跳变对象。 |
2143
2144**示例:**
2145```ts
2146import { i18n } from '@kit.LocalizationKit';
2147
2148// 获取蒂华纳时区对象
2149let timeZone: i18n.TimeZone = i18n.getTimeZone('America/Tijuana');
2150// 获取蒂华纳时区跳变规则
2151let zoneRules: i18n.ZoneRules = timeZone.getZoneRules();
2152let date = new Date(2025, 4, 13);
2153// 获取蒂华纳时区2025年5月13日后的下一个跳变对象
2154let zoneOffsetTransition: i18n.ZoneOffsetTransition = zoneRules.nextTransition(date.getTime());
2155```
2156
2157## ZoneOffsetTransition<sup>20+</sup>
2158
2159提供解析时区跳变规则的能力。
2160
2161### getMilliseconds<sup>20+</sup>
2162
2163getMilliseconds(): number
2164
2165获取时区跳变点的时间戳。
2166
2167**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
2168
2169**系统能力:** SystemCapability.Global.I18n
2170
2171**返回值:**
2172
2173| 类型       | 说明         |
2174| -------- | ---------- |
2175| number | 从1970年1月1日0时0分0秒到时区跳变点之间的毫秒数,例如:1762074000000,单位:毫秒。如果当前时区[原始偏移量](#getrawoffset)保持不变并且不使用夏令时,则返回0。|
2176
2177**示例:**
2178```ts
2179import { i18n } from '@kit.LocalizationKit';
2180
2181let timeZone: i18n.TimeZone = i18n.getTimeZone('America/Tijuana');
2182let zoneRules: i18n.ZoneRules = timeZone.getZoneRules();
2183let date = new Date(2025, 4, 13);
2184let zoneOffsetTransition: i18n.ZoneOffsetTransition =
2185    zoneRules.nextTransition(date.getTime()); // 获取2025年5月13日以后的下一个时区跳变对象
2186zoneOffsetTransition.getMilliseconds(); // 跳变点的时间戳: 1762074000000
2187```
2188
2189### getOffsetAfter<sup>20+</sup>
2190
2191getOffsetAfter(): number
2192
2193获取时区跳变后的偏移量。
2194
2195**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
2196
2197**系统能力:** SystemCapability.Global.I18n
2198
2199**返回值:**
2200
2201| 类型       | 说明         |
2202| -------- | ---------- |
2203| number | 时区跳变后的偏移量,表示跳变后的时间相对于标准时间(协调世界时UTC)的时间差,单位:毫秒。例如:-28800000表示跳变后的时间比标准时间慢28800000毫秒(8小时)。 |
2204
2205**示例:**
2206```ts
2207import { i18n } from '@kit.LocalizationKit';
2208
2209let timeZone: i18n.TimeZone = i18n.getTimeZone('America/Tijuana');
2210let zoneRules: i18n.ZoneRules = timeZone.getZoneRules();
2211let date = new Date(2025, 4, 13);
2212let zoneOffsetTransition: i18n.ZoneOffsetTransition =
2213    zoneRules.nextTransition(date.getTime()); // 获取2025年5月13日以后的下一个时区跳变对象
2214zoneOffsetTransition.getOffsetAfter(); // 跳变后的偏移量: -28800000
2215```
2216
2217### getOffsetBefore<sup>20+</sup>
2218
2219getOffsetBefore(): number
2220
2221获取时区跳变前的偏移量。
2222
2223**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
2224
2225**系统能力:** SystemCapability.Global.I18n
2226
2227**返回值:**
2228
2229| 类型       | 说明         |
2230| -------- | ---------- |
2231| number | 时区跳变前的偏移量,表示跳变前的时间相对于标准时间(协调世界时UTC)的时间差,单位:毫秒。例如:-25200000表示跳变前的时间比标准时间慢25200000毫秒(7小时)。 |
2232
2233**示例:**
2234```ts
2235import { i18n } from '@kit.LocalizationKit';
2236
2237let timeZone: i18n.TimeZone = i18n.getTimeZone('America/Tijuana');
2238let zoneRules: i18n.ZoneRules = timeZone.getZoneRules();
2239let date = new Date(2025, 4, 13);
2240let zoneOffsetTransition: i18n.ZoneOffsetTransition =
2241    zoneRules.nextTransition(date.getTime()); // 获取2025年5月13日以后的下一个时区跳变对象
2242zoneOffsetTransition.getOffsetBefore(); // 跳变前的偏移量: -25200000
2243```
2244
2245
2246## Transliterator<sup>9+</sup>
2247
2248提供文本音译相关的能力,包括音译支持范围获取和文本音译等。
2249
2250### getAvailableIDs<sup>9+</sup>
2251
2252static getAvailableIDs(): string[]
2253
2254获取音译支持的转换ID列表。
2255
2256**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2257
2258**系统能力:** SystemCapability.Global.I18n
2259
2260**返回值:**
2261
2262| 类型       | 说明         |
2263| -------- | ---------- |
2264| string[] | 音译支持的转换ID列表。 |
2265
2266**示例:**
2267  ```ts
2268  // 共支持742个ID。每一个ID由使用中划线分割的两部分组成,格式为 source-destination。例如ids = ['Han-Latin','Latin-ASCII', 'Amharic-Latin/BGN','Accents-Any', ...],Han-Latin表示汉语转为译拉丁文,Amharic-Latin表示阿姆哈拉语转为拉丁文。
2269  // 更多使用信息可以参考ISO-15924。
2270  let ids: string[] = i18n.Transliterator.getAvailableIDs();
2271  ```
2272
2273
2274### getInstance<sup>9+</sup>
2275
2276static getInstance(id: string): Transliterator
2277
2278创建指定转换ID的音译对象。
2279
2280**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2281
2282**系统能力:** SystemCapability.Global.I18n
2283
2284**参数:**
2285
2286| 参数名  | 类型     | 必填   | 说明       |
2287| ---- | ------ | ---- | -------- |
2288| id   | string | 是    | 音译支持的转换ID。 |
2289
2290**返回值:**
2291
2292| 类型                                 | 说明    |
2293| ---------------------------------- | ----- |
2294| [Transliterator](#transliterator9) | 音译对象。 |
2295
2296**示例:**
2297  ```ts
2298  let transliterator: i18n.Transliterator = i18n.Transliterator.getInstance('Any-Latn');
2299  ```
2300
2301
2302### transform<sup>9+</sup>
2303
2304transform(text: string): string
2305
2306将输入文本从源格式转换为目标格式。
2307
2308**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2309
2310**系统能力:** SystemCapability.Global.I18n
2311
2312**参数:**
2313
2314| 参数名  | 类型     | 必填   | 说明     |
2315| ---- | ------ | ---- | ------ |
2316| text | string | 是    | 输入文本。 |
2317
2318**返回值:**
2319
2320| 类型     | 说明       |
2321| ------ | -------- |
2322| string | 转换后的文本。 |
2323
2324**示例:**
2325  ```ts
2326  let transliterator: i18n.Transliterator = i18n.Transliterator.getInstance('Any-Latn');
2327  let wordArray: string[] = ['中国', '德国', '美国', '法国']
2328  for (let i = 0; i < wordArray.length; i++) {
2329    let transliterateLatn: string =
2330      transliterator.transform(wordArray[i]); // transliterateLatn依次为:'zhōng guó', 'dé guó', 'měi guó', 'fǎ guó'
2331  }
2332
2333  // 汉语音译去声调
2334  transliterator = i18n.Transliterator.getInstance('Any-Latn;Latin-Ascii');
2335  let transliterateAscii: string = transliterator.transform('中国'); // transliterateAscii = 'zhong guo'
2336
2337  // 汉语姓氏读音
2338  transliterator = i18n.Transliterator.getInstance('Han-Latin/Names');
2339  let transliterateNames: string = transliterator.transform('单老师'); // transliterateNames = 'shàn lǎo shī'
2340  transliterateNames = transliterator.transform('长孙无忌'); // transliterateNames = 'zhǎng sūn wú jì'
2341  ```
2342
2343
2344## Unicode<sup>9+</sup>
2345
2346提供字符属性相关的能力,包括判断字符是否为空格、数字和字母等。
2347
2348**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2349
2350### isDigit<sup>9+</sup>
2351
2352static isDigit(ch: string): boolean
2353
2354判断输入的字符是否是数字。
2355
2356**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2357
2358**系统能力:** SystemCapability.Global.I18n
2359
2360**参数:**
2361
2362| 参数名  | 类型     | 必填   | 说明    |
2363| ---- | ------ | ---- | ----- |
2364| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
2365
2366**返回值:**
2367
2368| 类型      | 说明                                   |
2369| ------- | ------------------------------------ |
2370| boolean | true表示输入的字符是数字,false表示输入的字符不是数字。 |
2371
2372**示例:**
2373  ```ts
2374  let isDigit: boolean = i18n.Unicode.isDigit('1'); // isDigit = true
2375  ```
2376
2377
2378### isSpaceChar<sup>9+</sup>
2379
2380static isSpaceChar(ch: string): boolean
2381
2382判断输入的字符是否是空格符。
2383
2384**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2385
2386**系统能力:** SystemCapability.Global.I18n
2387
2388**参数:**
2389
2390| 参数名  | 类型     | 必填   | 说明    |
2391| ---- | ------ | ---- | ----- |
2392| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
2393
2394**返回值:**
2395
2396| 类型      | 说明                                     |
2397| ------- | -------------------------------------- |
2398| boolean | true表示输入的字符是空格符,false表示输入的字符不是空格符。 |
2399
2400**示例:**
2401  ```ts
2402  let isSpacechar: boolean = i18n.Unicode.isSpaceChar('a'); // isSpacechar = false
2403  ```
2404
2405
2406### isWhitespace<sup>9+</sup>
2407
2408static isWhitespace(ch: string): boolean
2409
2410判断输入的字符是否是空白符。
2411
2412**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2413
2414**系统能力:** SystemCapability.Global.I18n
2415
2416**参数:**
2417
2418| 参数名  | 类型     | 必填   | 说明    |
2419| ---- | ------ | ---- | ----- |
2420| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
2421
2422**返回值:**
2423
2424| 类型      | 说明                                     |
2425| ------- | -------------------------------------- |
2426| boolean | true表示输入的字符是空白符,false表示输入的字符不是空白符。 |
2427
2428**示例:**
2429  ```ts
2430  let isWhitespace: boolean = i18n.Unicode.isWhitespace('a'); // isWhitespace = false
2431  ```
2432
2433
2434### isRTL<sup>9+</sup>
2435
2436static isRTL(ch: string): boolean
2437
2438判断输入的字符是否是从右到左语言的字符。
2439
2440**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2441
2442**系统能力:** SystemCapability.Global.I18n
2443
2444**参数:**
2445
2446| 参数名  | 类型     | 必填   | 说明    |
2447| ---- | ------ | ---- | ----- |
2448| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
2449
2450**返回值:**
2451
2452| 类型      | 说明                                       |
2453| ------- | ---------------------------------------- |
2454| boolean | true表示输入的字符是从右到左语言的字符,false表示输入的字符不是从右到左语言的字符。 |
2455
2456**示例:**
2457  ```ts
2458  let isRtl: boolean = i18n.Unicode.isRTL('a'); // isRtl = false
2459  ```
2460
2461
2462### isIdeograph<sup>9+</sup>
2463
2464static isIdeograph(ch: string): boolean
2465
2466判断输入的字符是否是表意文字。
2467
2468**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2469
2470**系统能力:** SystemCapability.Global.I18n
2471
2472**参数:**
2473
2474| 参数名  | 类型     | 必填   | 说明    |
2475| ---- | ------ | ---- | ----- |
2476| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
2477
2478**返回值:**
2479
2480| 类型      | 说明                                       |
2481| ------- | ---------------------------------------- |
2482| boolean | true表示输入的字符是表意文字,false表示输入的字符不是表意文字。 |
2483
2484**示例:**
2485  ```ts
2486  let isIdeograph: boolean = i18n.Unicode.isIdeograph('a'); // isIdeograph = false
2487  ```
2488
2489
2490### isLetter<sup>9+</sup>
2491
2492static isLetter(ch: string): boolean
2493
2494判断输入的字符是否是字母。
2495
2496**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2497
2498**系统能力:** SystemCapability.Global.I18n
2499
2500**参数:**
2501
2502| 参数名  | 类型     | 必填   | 说明    |
2503| ---- | ------ | ---- | ----- |
2504| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
2505
2506**返回值:**
2507
2508| 类型      | 说明                                   |
2509| ------- | ------------------------------------ |
2510| boolean | true表示输入的字符是字母,false表示输入的字符不是字母。 |
2511
2512**示例:**
2513  ```ts
2514  let isLetter: boolean = i18n.Unicode.isLetter('a'); // isLetter = true
2515  ```
2516
2517
2518### isLowerCase<sup>9+</sup>
2519
2520static isLowerCase(ch: string): boolean
2521
2522判断输入的字符是否是小写字母。
2523
2524**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2525
2526**系统能力:** SystemCapability.Global.I18n
2527
2528**参数:**
2529
2530| 参数名  | 类型     | 必填   | 说明    |
2531| ---- | ------ | ---- | ----- |
2532| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
2533
2534**返回值:**
2535
2536| 类型      | 说明                                       |
2537| ------- | ---------------------------------------- |
2538| boolean | true表示输入的字符是小写字母,false表示输入的字符不是小写字母。 |
2539
2540**示例:**
2541  ```ts
2542  let isLowercase: boolean = i18n.Unicode.isLowerCase('a'); // isLowercase = true
2543  ```
2544
2545
2546### isUpperCase<sup>9+</sup>
2547
2548static isUpperCase(ch: string): boolean
2549
2550判断输入的字符是否是大写字母。
2551
2552**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2553
2554**系统能力:** SystemCapability.Global.I18n
2555
2556**参数:**
2557
2558| 参数名  | 类型     | 必填   | 说明    |
2559| ---- | ------ | ---- | ----- |
2560| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
2561
2562**返回值:**
2563
2564| 类型      | 说明                                       |
2565| ------- | ---------------------------------------- |
2566| boolean | true表示输入的字符是大写字母,false表示输入的字符不是大写字母。 |
2567
2568**示例:**
2569  ```ts
2570  let isUppercase: boolean = i18n.Unicode.isUpperCase('a'); // isUppercase = false
2571  ```
2572
2573
2574### getType<sup>9+</sup>
2575
2576static getType(ch: string): string
2577
2578获取输入的字符的一般类别值。
2579
2580**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2581
2582**系统能力:** SystemCapability.Global.I18n
2583
2584**参数:**
2585
2586| 参数名  | 类型     | 必填   | 说明    |
2587| ---- | ------ | ---- | ----- |
2588| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
2589
2590**返回值:**
2591
2592| 类型     | 说明          |
2593| ------ | ----------- |
2594| string | 输入字符的一般类别值。|
2595
2596一般类别值如下,更详细的介绍可以参考Unicode标准。
2597
2598| 名称 | 值 | 说明 |
2599| ---- | -------- | ---------- |
2600| U_UNASSIGNED | U_UNASSIGNED | 表示未分配和非字符代码点对应类别。 |
2601| U_GENERAL_OTHER_TYPES | U_GENERAL_OTHER_TYPES | 与 U_UNASSIGNED 一致。 |
2602| U_UPPERCASE_LETTER | U_UPPERCASE_LETTER | 表示大写字母。 |
2603| U_LOWERCASE_LETTER | U_LOWERCASE_LETTER | 表示小写字母。  |
2604| U_TITLECASE_LETTER | U_TITLECASE_LETTER | 表示首字母大写。 |
2605| U_MODIFIER_LETTER | U_MODIFIER_LETTER | 表示字母修饰符。 |
2606| U_OTHER_LETTER | U_OTHER_LETTER | 表示其它字母,不属于大写字母、小写字母、首字母大写或修饰符字母的字母。 |
2607| U_NON_SPACING_MARK | U_NON_SPACING_MARK | 表示非间距标记,例如重音符号',变音符号#。 |
2608| U_ENCLOSING_MARK | U_ENCLOSING_MARK | 表示封闭标记和能围住其它字符的标记,如圆圈、方框等。 |
2609| U_COMBINING_SPACING_MARK | U_COMBINING_SPACING_MARK | 表示间距标记,例如元音符号[ ]。 |
2610| U_DECIMAL_DIGIT_NUMBER | U_DECIMAL_DIGIT_NUMBER | 表示十进制数字。 |
2611| U_LETTER_NUMBER | U_LETTER_NUMBER | 表示字母数字,罗马数字。 |
2612| U_OTHER_NUMBER | U_OTHER_NUMBER | 表示其它作为加密符号和记号的数字,非阿拉伯数字的数字表示符,例如@、#、(1)、①等。 |
2613| U_SPACE_SEPARATOR | U_SPACE_SEPARATOR | 表示空白分隔符,如空格符、不间断空格、固定宽度的空白符。 |
2614| U_LINE_SEPARATOR | U_LINE_SEPARATOR | 表示行分隔符。|
2615| U_PARAGRAPH_SEPARATOR | U_PARAGRAPH_SEPARATOR | 表示段落分割符。 |
2616| U_CONTROL_CHAR | U_CONTROL_CHAR | 表示控制字符。 |
2617| U_FORMAT_CHAR | U_FORMAT_CHAR | 表示格式字符。 |
2618| U_PRIVATE_USE_CHAR | U_PRIVATE_USE_CHAR | 表示私人使用区代码点类别,例如公司 logo。 |
2619| U_SURROGATE | U_SURROGATE | 表示代理项,在UTF-16中用来表示补充字符的方法。 |
2620| U_DASH_PUNCTUATION | U_DASH_PUNCTUATION | 表示短划线标点。 |
2621| U_START_PUNCTUATION | U_START_PUNCTUATION | 表示开始标点,如左括号。 |
2622| U_END_PUNCTUATION | U_END_PUNCTUATION | 表示结束标点,如右括号。 |
2623| U_INITIAL_PUNCTUATION | U_INITIAL_PUNCTUATION | 表示前引号,例如左双引号、左单引号。 |
2624| U_FINAL_PUNCTUATION | U_FINAL_PUNCTUATION | 表示后引号,例如右双引号、右单引号。 |
2625| U_CONNECTOR_PUNCTUATION | U_CONNECTOR_PUNCTUATION | 表示连接符标点。 |
2626| U_OTHER_PUNCTUATION | U_OTHER_PUNCTUATION | 表示其他标点。 |
2627| U_MATH_SYMBOL | U_MATH_SYMBOL | 表示数学符号。 |
2628| U_CURRENCY_SYMBOL | U_CURRENCY_SYMBOL | 表示货币符号。 |
2629| U_MODIFIER_SYMBOL | U_MODIFIER_SYMBOL | 表示修饰符号。 |
2630| U_OTHER_SYMBOL | U_OTHER_SYMBOL | 表示其它符号。 |
2631
2632**示例:**
2633  ```ts
2634  let unicodeType: string = i18n.Unicode.getType('a'); // unicodeType = 'U_LOWERCASE_LETTER'
2635  ```
2636
2637## I18NUtil<sup>9+</sup>
2638
2639国际化工具类,提供单位转换、获取日期顺序、获取时段名称、区域匹配和路径本地化等能力。
2640
2641### unitConvert<sup>9+</sup>
2642
2643static unitConvert(fromUnit: UnitInfo, toUnit: UnitInfo, value: number, locale: string, style?: string): string
2644
2645将fromUnit的单位转换为toUnit的单位,并根据区域与风格进行格式化。
2646
2647**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2648
2649**系统能力:** SystemCapability.Global.I18n
2650
2651**参数:**
2652
2653| 参数名      | 类型                     | 必填   | 说明                                       |
2654| -------- | ---------------------- | ---- | ---------------------------------------- |
2655| fromUnit | [UnitInfo](#unitinfo8) | 是    | 需要转换的单位。                                 |
2656| toUnit   | [UnitInfo](#unitinfo8) | 是    | 转换成的目标单位。                                 |
2657| value    | number                 | 是    | 需要转换的单位的数量值。                             |
2658| locale   | string                 | 是    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成,如:zh-Hans-CN。                |
2659| style    | string                 | 否    | 格式化使用的风格,取值包括:'long',&nbsp;'short',&nbsp;'narrow'。默认值:short。<br>不同取值显示效果请参考[数字与度量衡国际化](../../internationalization/i18n-numbers-weights-measures.md)。 |
2660
2661**返回值:**
2662
2663| 类型     | 说明                      |
2664| ------ | ----------------------- |
2665| string | 转换单位后的度量衡格式化结果。 |
2666
2667**示例:**
2668  ```ts
2669  let fromUnit: i18n.UnitInfo = { unit: 'cup', measureSystem: 'US' };
2670  let toUnit: i18n.UnitInfo = { unit: 'liter', measureSystem: 'SI' };
2671  let convertResult: string =
2672    i18n.I18NUtil.unitConvert(fromUnit, toUnit, 1000, 'en-US', 'long'); // convertResult = '236.588 liters'
2673  ```
2674
2675### getDateOrder<sup>9+</sup>
2676
2677static getDateOrder(locale: string): string
2678
2679获取某区域日期中年、月、日的排列顺序。
2680
2681**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2682
2683**系统能力:** SystemCapability.Global.I18n
2684
2685**参数:**
2686
2687| 参数名    | 类型     | 必填   | 说明                        |
2688| ------ | ------ | ---- | ------------------------- |
2689| locale | string | 是    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成,如:zh-Hans-CN。 |
2690
2691**返回值:**
2692
2693| 类型     | 说明                  |
2694| ------ | ------------------- |
2695| string | 该区域年、月、日的排列顺序。“y”表示年,“L”表示月,“d”表示日。 |
2696
2697**示例:**
2698  ```ts
2699  let order: string = i18n.I18NUtil.getDateOrder('zh-CN'); // order = 'y-L-d'
2700  ```
2701
2702
2703### getTimePeriodName<sup>11+</sup>
2704
2705static getTimePeriodName(hour:number, locale?: string): string
2706
2707获取指定时间在某区域的本地化表达。
2708
2709**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2710
2711**系统能力:** SystemCapability.Global.I18n
2712
2713**参数:**
2714
2715| 参数名    | 类型     | 必填   | 说明                        |
2716| ------ | ------ | ---- | ------------------------- |
2717| hour | number | 是    | 指定的时间,例如16。 |
2718| locale | string | 否    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成。如:zh-Hans-CN。<br>默认值:系统当前区域ID。|
2719
2720**返回值:**
2721
2722| 类型     | 说明                  |
2723| ------ | ------------------- |
2724| string | 指定时间在某区域的本地化表达。 |
2725
2726**错误码:**
2727
2728以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
2729
2730| 错误码ID  | 错误信息                   |
2731| ------ | ---------------------- |
2732| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
2733| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
2734
2735**示例:**
2736  ```ts
2737  import { BusinessError } from '@kit.BasicServicesKit';
2738
2739  try {
2740    let name: string = i18n.I18NUtil.getTimePeriodName(2, 'zh-CN'); // name = '凌晨'
2741  } catch (error) {
2742    let err: BusinessError = error as BusinessError;
2743    console.error(`call I18NUtil.getTimePeriodName failed, error code: ${err.code}, message: ${err.message}.`);
2744  }
2745  ```
2746
2747### getBestMatchLocale<sup>12+</sup>
2748
2749static getBestMatchLocale(locale: string, localeList: string[]): string
2750
2751在指定区域列表中获取与某个区域最佳匹配的区域。
2752
2753**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2754
2755**系统能力:** SystemCapability.Global.I18n
2756
2757**参数:**
2758
2759| 参数名    | 类型     | 必填   | 说明                        |
2760| ------ | ------ | ---- | ------------------------- |
2761| locale | string | 是    | 待匹配的[区域ID字符串](../../internationalization/i18n-locale-culture.md#实现原理),如:zh-Hans-CN。 |
2762| localeList | string[] | 是   | 指定的区域ID字符串列表。 |
2763
2764**返回值:**
2765
2766| 类型     | 说明                  |
2767| ------ | ------------------- |
2768| string | 与某个区域最佳匹配的区域ID。当指定区域列表中没有匹配的区域时,返回空字串。 |
2769
2770**错误码:**
2771
2772以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
2773
2774| 错误码ID  | 错误信息                   |
2775| ------ | ---------------------- |
2776| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
2777| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
2778
2779**示例:**
2780
2781  ```ts
2782  import { BusinessError } from '@kit.BasicServicesKit';
2783
2784  try {
2785    let matchedLocaleId: string = i18n.I18NUtil.getBestMatchLocale('zh-Hans-CN',
2786      ['en-Latn-US', 'en-GB', 'zh-Hant-CN', 'zh-Hans-MO']); // matchedLocaleId = 'zh-Hans-MO'
2787  } catch (error) {
2788    let err: BusinessError = error as BusinessError;
2789    console.error(`call I18NUtil.getBestMatchLocale failed, error code: ${err.code}, message: ${err.message}.`);
2790  }
2791  ```
2792
2793### getThreeLetterLanguage<sup>12+</sup>
2794
2795static getThreeLetterLanguage(locale: string): string
2796
2797将语言代码由二字母转换为三字母。二字母和三字母语言代码的规格参考[ISO 639](https://www.iso.org/iso-639-language-code)。<br>例如,中文的二字母语言代码是zh,对应的三字母语言代码是zho。
2798
2799**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2800
2801**系统能力:** SystemCapability.Global.I18n
2802
2803**参数:**
2804
2805| 参数名 | 类型   | 必填 | 说明                     |
2806| ------ | ------ | ---- | ------------------------ |
2807| locale | string | 是   | 待转换的语言二字母代码,如:zh。 |
2808
2809**返回值:**
2810
2811| 类型     | 说明                  |
2812| ------ | ------------------- |
2813| string | 返回待转换语言二字母代码对应的三字母代码。 |
2814
2815**错误码:**
2816
2817以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
2818
2819| 错误码ID | 错误信息                                                     |
2820| -------- | ------------------------------------------------------------ |
2821| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
2822| 890001   | Invalid parameter. Possible causes: Parameter verification failed. |
2823
2824**示例:**
2825
2826  ```ts
2827  import { BusinessError } from '@kit.BasicServicesKit';
2828
2829  try {
2830    let language: string = i18n.I18NUtil.getThreeLetterLanguage('zh') // language = 'zho'
2831  } catch (error) {
2832    let err: BusinessError = error as BusinessError;
2833    console.error(`call I18NUtil.getThreeLetterLanguage failed, error code: ${err.code}, message: ${err.message}.`);
2834  }
2835  ```
2836
2837### getThreeLetterRegion<sup>12+</sup>
2838
2839static getThreeLetterRegion(locale: string): string
2840
2841将地区代码由二字母转换为三字母。二字母和三字母地区代码的规格参考[ISO 3166](https://www.iso.org/iso-3166-country-codes.html)<br>例如,中国的二字母地区代码是CN, 三字母是CHN。
2842
2843**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2844
2845**系统能力:** SystemCapability.Global.I18n
2846
2847**参数:**
2848
2849| 参数名 | 类型   | 必填 | 说明                     |
2850| ------ | ------ | ---- | ------------------------ |
2851| locale | string | 是   | 待转换的地区二字母代码,如:CN。 |
2852
2853**返回值:**
2854
2855| 类型     | 说明                  |
2856| ------ | ------------------- |
2857| string | 返回待转换地区二字母代码对应的三字母代码。 |
2858
2859**错误码:**
2860
2861以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
2862
2863| 错误码ID | 错误信息                                                     |
2864| -------- | ------------------------------------------------------------ |
2865| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
2866| 890001   | Invalid parameter. Possible causes: Parameter verification failed. |
2867
2868**示例:**
2869
2870  ```ts
2871  import { BusinessError } from '@kit.BasicServicesKit';
2872
2873  try {
2874    let region: string = i18n.I18NUtil.getThreeLetterRegion('CN') // region = 'CHN'
2875  } catch (error) {
2876    let err: BusinessError = error as BusinessError;
2877    console.error(`call I18NUtil.getThreeLetterRegion failed, error code: ${err.code}, message: ${err.message}.`);
2878  }
2879  ```
2880
2881### getUnicodeWrappedFilePath<sup>20+</sup>
2882
2883static getUnicodeWrappedFilePath(path: string, delimiter?: string, locale?: Intl.Locale): string
2884
2885对文件路径进行本地化处理。<br>例如,将/data/out/tmp本地化处理后生成tmp/out/data/。
2886
2887**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
2888
2889**系统能力:** SystemCapability.Global.I18n
2890
2891**参数:**
2892
2893| 参数名 | 类型   | 必填 | 说明                     |
2894| ------ | ------ | ---- | ------------------------ |
2895| path | string | 是   | 待处理的路径,如:/data/out/tmp。 |
2896| delimiter | string | 否   | 路径分隔符,默认值:/。 |
2897| locale | [Intl.Locale](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) | 否   | 区域对象,默认值:系统区域对象。 |
2898
2899**返回值:**
2900
2901| 类型     | 说明                  |
2902| ------ | ------------------- |
2903| string | 本地化处理后的文件路径。如果区域对象表示的语言是镜像语言,则处理后的文件路径包含方向控制符,保证文件路径镜像显示。 |
2904
2905**错误码:**
2906
2907以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)。
2908
2909| 错误码ID | 错误信息                                                     |
2910| -------- | ------------------------------------------------------------ |
2911| 8900001   | Invalid parameter. Possible causes: Parameter verification failed. |
2912
2913**示例:**
2914
2915```ts
2916import { BusinessError } from '@kit.BasicServicesKit';
2917
2918try {
2919  let path: string = '/data/out/tmp';
2920  let delimiter: string = '/';
2921  let locale: Intl.Locale = new Intl.Locale('ar');
2922  let mirrorPath: string =
2923    i18n.I18NUtil.getUnicodeWrappedFilePath(path, delimiter, locale); // mirrorPath显示为: 'tmp/out/data/'
2924} catch (error) {
2925  let err: BusinessError = error as BusinessError;
2926  console.error(`call I18NUtil.getUnicodeWrappedFilePath failed, error code: ${err.code}, message: ${err.message}.`);
2927}
2928```
2929
2930### getUnicodeWrappedFilePath<sup>(deprecated)</sup>
2931
2932static getUnicodeWrappedFilePath(path: string, delimiter?: string, locale?: intl.Locale): string
2933
2934> 从API version 18开始支持,从API version 20开始废弃,建议使用[getUnicodeWrappedFilePath](#getunicodewrappedfilepath20)替代。
2935
2936对文件路径进行本地化处理。<br>例如,将/data/out/tmp本地化处理后生成tmp/out/data/。
2937
2938**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
2939
2940**系统能力:** SystemCapability.Global.I18n
2941
2942**参数:**
2943
2944| 参数名 | 类型   | 必填 | 说明                     |
2945| ------ | ------ | ---- | ------------------------ |
2946| path | string | 是   | 待处理的路径,如:/data/out/tmp。 |
2947| delimiter | string | 否   | 路径分隔符,默认值:/。 |
2948| locale | [intl.Locale](./js-apis-intl.md#localedeprecated) | 否   | 区域对象,默认值:系统区域对象。 |
2949
2950**返回值:**
2951
2952| 类型     | 说明                  |
2953| ------ | ------------------- |
2954| string | 本地化处理后的文件路径。如果区域对象表示的语言是镜像语言,则处理后的文件路径包含方向控制符,保证文件路径镜像显示。 |
2955
2956**错误码:**
2957
2958以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)。
2959
2960| 错误码ID | 错误信息                                                     |
2961| -------- | ------------------------------------------------------------ |
2962| 890001   | Invalid parameter. Possible causes: Parameter verification failed. |
2963
2964**示例:**
2965
2966```ts
2967import { BusinessError } from '@kit.BasicServicesKit';
2968import { intl } from '@kit.LocalizationKit';
2969
2970try {
2971  let path: string = '/data/out/tmp';
2972  let delimiter: string = '/';
2973  let locale: intl.Locale = new intl.Locale('ar');
2974  let mirrorPath: string =
2975    i18n.I18NUtil.getUnicodeWrappedFilePath(path, delimiter, locale); // mirrorPath显示为: 'tmp/out/data/'
2976} catch (error) {
2977  let err: BusinessError = error as BusinessError;
2978  console.error(`call I18NUtil.getUnicodeWrappedFilePath failed, error code: ${err.code}, message: ${err.message}.`);
2979}
2980```
2981
2982## Normalizer<sup>10+</sup>
2983
2984提供文本标准化的能力。
2985
2986### getInstance<sup>10+</sup>
2987
2988static getInstance(mode: NormalizerMode): Normalizer
2989
2990获取文本标准化对象。
2991
2992**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2993
2994**系统能力:** SystemCapability.Global.I18n
2995
2996**参数:**
2997
2998| 参数名    | 类型     | 必填   | 说明                        |
2999| ------ | ------ | ---- | ------------------------- |
3000| mode | [NormalizerMode](#normalizermode10) | 是    | 文本标准化范式。 |
3001
3002**返回值:**
3003
3004| 类型     | 说明                  |
3005| ------ | ------------------- |
3006| [Normalizer](#normalizer10) | 返回指定范式的文本标准化对象。 |
3007
3008**错误码:**
3009
3010以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
3011
3012| 错误码ID  | 错误信息                   |
3013| ------ | ---------------------- |
3014| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
3015
3016**示例:**
3017  ```ts
3018  import { BusinessError } from '@kit.BasicServicesKit';
3019
3020  try {
3021    let normalizer: i18n.Normalizer = i18n.Normalizer.getInstance(i18n.NormalizerMode.NFC);
3022  } catch (error) {
3023    let err: BusinessError = error as BusinessError;
3024    console.error(`call Normalizer.getInstance failed, error code: ${err.code}, message: ${err.message}.`);
3025  }
3026  ```
3027
3028
3029### normalize<sup>10+</sup>
3030
3031normalize(text: string): string
3032
3033对字符串进行标准化处理。
3034
3035**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
3036
3037**系统能力:** SystemCapability.Global.I18n
3038
3039**参数:**
3040
3041| 参数名    | 类型     | 必填   | 说明                        |
3042| ------ | ------ | ---- | ------------------------- |
3043| text | string | 是    | 输入文本。 |
3044
3045**返回值:**
3046
3047| 类型     | 说明                  |
3048| ------ | ------------------- |
3049| string | 标准化处理后的字符串。 |
3050
3051**错误码:**
3052
3053以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
3054
3055| 错误码ID  | 错误信息                   |
3056| ------ | ---------------------- |
3057| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
3058
3059**示例:**
3060  ```ts
3061  import { BusinessError } from '@kit.BasicServicesKit';
3062
3063  try {
3064    let normalizer: i18n.Normalizer = i18n.Normalizer.getInstance(i18n.NormalizerMode.NFC);
3065    let normalizedText: string = normalizer.normalize('\u1E9B\u0323'); // normalizedText = 'ẛ̣'
3066  } catch (error) {
3067    let err: BusinessError = error as BusinessError;
3068    console.error(`call Normalizer.getInstance failed, error code: ${err.code}, message: ${err.message}.`);
3069  }
3070  ```
3071
3072## NormalizerMode<sup>10+</sup>
3073
3074文本标准化范式的枚举。
3075
3076**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
3077
3078**系统能力:** SystemCapability.Global.I18n
3079
3080| 名称 | 值 | 说明 |
3081| -------- | -------- | -------- |
3082| NFC | 1 | NFC范式。 |
3083| NFD | 2 | NFD范式。 |
3084| NFKC | 3 | NFKC范式。 |
3085| NFKD | 4 | NFKD范式。 |
3086
3087
3088## HolidayManager<sup>11+</sup>
3089
3090提供解析节假日数据的能力,包括节假日判断和指定年份节假日列表获取等。
3091
3092### constructor<sup>11+</sup>
3093
3094constructor(icsPath: String)
3095
3096创建HolidayManager对象,用于解析节假日数据。
3097
3098**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
3099
3100**系统能力:** SystemCapability.Global.I18n
3101
3102**参数:**
3103
3104|   参数名  |      类型      | 必填 |     说明      |
3105| --------- | ------------- | ---- | ------------- |
3106| icsPath   | String | 是   | 在设备上有应用读取权限的iCalendar格式的ics文件路径。iCalendar格式是一种标准的互联网日历格式,用于存储日历数据。 |
3107
3108**错误码:**
3109
3110以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
3111
3112| 错误码ID  | 错误信息                   |
3113| ------ | ---------------------- |
3114| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
3115| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
3116
3117**示例:**
3118  ```ts
3119  import { BusinessError } from '@kit.BasicServicesKit';
3120
3121  try {
3122    // 需要将'/system/lib/US.ics'替换为实际ics文件路径
3123    let holidayManager = new i18n.HolidayManager('/system/lib/US.ics');
3124  } catch (error) {
3125    let err: BusinessError = error as BusinessError;
3126    console.error(`call i18n.HolidayManager failed, error code: ${err.code}, message: ${err.message}.`);
3127  }
3128  ```
3129
3130### isHoliday<sup>11+</sup>
3131
3132isHoliday(date?: Date): boolean
3133
3134判断指定的日期是否是节假日。
3135
3136**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
3137
3138**系统能力:** SystemCapability.Global.I18n
3139
3140**参数:**
3141
3142|   参数名  |      类型      | 必填 |     说明      |
3143| --------- | ---------------| ---- | ------------- |
3144| date      | Date           | 否   | 时间、日期。说明:月份从0开始计数,例如0表示一月。<br>默认值:当前日期。|
3145
3146**返回值:**
3147
3148|       类型        |         说明          |
3149| ----------------- | ----------------------|
3150| boolean           | true表示指定的日期是节假日,false表示指定的日期不是节假日。 |
3151
3152**错误码:**
3153
3154以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
3155
3156| 错误码ID  | 错误信息                   |
3157| ------ | ---------------------- |
3158| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
3159
3160**示例:**
3161  ```ts
3162  import { BusinessError } from '@kit.BasicServicesKit';
3163
3164  try {
3165    // 需要将'/system/lib/US.ics'替换为实际ics文件路径
3166    let holidayManager: i18n.HolidayManager = new i18n.HolidayManager('/system/lib/US.ics');
3167    let isHoliday: boolean = holidayManager.isHoliday();
3168    isHoliday = holidayManager.isHoliday(new Date(2023, 5, 25)); // 时间日期为2023.06.25
3169  } catch (error) {
3170    let err: BusinessError = error as BusinessError;
3171    console.error(`call holidayManager.isHoliday failed, error code: ${err.code}, message: ${err.message}.`);
3172  }
3173  ```
3174
3175
3176### getHolidayInfoItemArray<sup>11+</sup>
3177
3178getHolidayInfoItemArray(year?: number): Array&lt;[HolidayInfoItem](#holidayinfoitem11)&gt;
3179
3180获取指定年的节假日信息列表。
3181
3182**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
3183
3184**系统能力:** SystemCapability.Global.I18n
3185
3186**参数:**
3187
3188|   参数名  |      类型      | 必填 |     说明      |
3189| --------- | -------------  | ---- | ------------- |
3190| year      | number         | 否   | 年,例如2023。<br>默认值:当前年份。|
3191
3192**返回值:**
3193
3194|       类型        |         说明          |
3195| ----------------- | -------------------- |
3196| Array&lt;[HolidayInfoItem](#holidayinfoitem11)&gt; | 返回节假日信息列表。 |
3197
3198**错误码:**
3199
3200以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
3201
3202| 错误码ID  | 错误信息                   |
3203| ------ | ---------------------- |
3204| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
3205| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
3206
3207**示例:**
3208  ```ts
3209  import { BusinessError } from '@kit.BasicServicesKit';
3210
3211  try {
3212    // 需要将'/system/lib/US.ics'替换为实际ics文件路径
3213    let holidayManager: i18n.HolidayManager = new i18n.HolidayManager('/system/lib/US.ics');
3214    let holidayInfoItemArray: Array<i18n.HolidayInfoItem> = holidayManager.getHolidayInfoItemArray(2023);
3215  } catch (error) {
3216    let err: BusinessError = error as BusinessError;
3217    console.error(`call holidayManager.getHolidayInfoItemArray failed, error code: ${err.code}, message: ${err.message}.`);
3218  }
3219  ```
3220
3221## HolidayInfoItem<sup>11+</sup>
3222
3223节假日信息。
3224
3225**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
3226
3227**系统能力:** SystemCapability.Global.I18n
3228
3229| 名称            | 类型             |  只读   |  可选   |  说明                                   |
3230| --------------- | --------------- | ------  | ------  | --------------------------------------- |
3231| baseName        | string          |   否    |   否    | 节假日的英文名称。              |
3232| year            | number          |   否    |   否    | 节假日所在年。                   |
3233| month           | number          |   否    |   否    | 节假日所在月。          |
3234| day             | number          |   否    |   否    | 节假日所在日。                         |
3235| localNames      | Array&lt;[HolidayLocalName](#holidaylocalname11)&gt;          |   否    |   是    | 节假日的本地名称列表。          |
3236
3237## HolidayLocalName<sup>11+</sup>
3238
3239节假日名称在不同语言下的翻译。
3240
3241**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
3242
3243**系统能力:** SystemCapability.Global.I18n
3244
3245| 名称            | 类型             |  只读   |  可选   |  说明                                   |
3246| --------------- | -----------------| ------  | ------  | --------------------------------------- |
3247| language        | string           |   否    |   否    | 语言,例如ar,en,tr。          |
3248| name            | string           |   否    |   否    | 节假日的本地名称,例如Sacrifice Feast(宰牲节)的土耳其语名称为Kurban Bayrami。      |
3249
3250
3251## i18n.getSimpleDateTimeFormatByPattern<sup>20+</sup>
3252
3253getSimpleDateTimeFormatByPattern(pattern: string, locale?: Intl.Locale): SimpleDateTimeFormat
3254
3255通过模式字符串获取SimpleDateTimeFormat对象。与[getSimpleDateTimeFormatBySkeleton](#i18ngetsimpledatetimeformatbyskeleton20)接口获取的对象在格式化后显示差异请参考[SimpleDateTimeFormat.format](#format18)的示例。
3256
3257**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
3258
3259**系统能力:** SystemCapability.Global.I18n
3260
3261**参数:**
3262
3263| 参数名    | 类型     | 必填   | 说明                                       |
3264| ------- | ----------- | ----- | ---------------------------------------- |
3265| pattern | string      | 是    | 合法的模式字符串,支持[日期字段符号表](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table)中Field Patterns值的自由组合。同时,pattern支持传入自定义文本,文本内容以`''`标识。 |
3266| locale  | [Intl.Locale](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) | 否    | 区域对象。默认值:系统区域对象。 |
3267
3268**返回值:**
3269
3270| 类型                     | 说明    |
3271| ---------------------- | ----- |
3272| [SimpleDateTimeFormat](#simpledatetimeformat18) | SimpleDateTimeFormat对象。 |
3273
3274**错误码:**
3275
3276以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)。
3277
3278| 错误码ID  | 错误信息                   |
3279| ------ | ---------------------- |
3280| 8900001 | Invalid parameter. Possible causes: Parameter verification failed. |
3281
3282**示例:**
3283```ts
3284import { BusinessError } from '@kit.BasicServicesKit';
3285
3286try {
3287  let locale: Intl.Locale = new Intl.Locale('zh-Hans-CN');
3288  let formatter: i18n.SimpleDateTimeFormat = i18n.getSimpleDateTimeFormatByPattern("'month('M')'", locale);
3289} catch (error) {
3290  let err: BusinessError = error as BusinessError;
3291  console.error(`call i18n.getSimpleDateTimeFormatByPattern failed, error code: ${err.code}, message: ${err.message}.`);
3292}
3293```
3294
3295## i18n.getSimpleDateTimeFormatByPattern<sup>(deprecated)</sup>
3296
3297getSimpleDateTimeFormatByPattern(pattern: string, locale?: intl.Locale): SimpleDateTimeFormat
3298
3299> 从API version 18开始支持,从API version 20开始废弃,建议使用[getSimpleDateTimeFormatByPattern](#i18ngetsimpledatetimeformatbypattern20)替代。
3300
3301通过模式字符串获取SimpleDateTimeFormat对象。与[getSimpleDateTimeFormatBySkeleton](#i18ngetsimpledatetimeformatbyskeletondeprecated)接口获取的对象在格式化后显示差异请参考[SimpleDateTimeFormat.format](#format18)的示例。
3302
3303**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
3304
3305**系统能力:** SystemCapability.Global.I18n
3306
3307**参数:**
3308
3309| 参数名    | 类型     | 必填   | 说明                                       |
3310| ------- | ----------- | ----- | ---------------------------------------- |
3311| pattern | string      | 是    | 合法的模式字符串,支持[日期字段符号表](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table)中Field Patterns值的自由组合。同时,pattern支持传入自定义文本,文本内容以`''`标识。 |
3312| locale  | [intl.Locale](./js-apis-intl.md#localedeprecated) | 否    | 区域对象。默认值:系统区域对象。 |
3313
3314**返回值:**
3315
3316| 类型                     | 说明    |
3317| ---------------------- | ----- |
3318| [SimpleDateTimeFormat](#simpledatetimeformat18) | SimpleDateTimeFormat对象。 |
3319
3320**错误码:**
3321
3322以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)。
3323
3324| 错误码ID  | 错误信息                   |
3325| ------ | ---------------------- |
3326| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
3327
3328**示例:**
3329```ts
3330import { BusinessError } from '@kit.BasicServicesKit';
3331import { intl } from '@kit.LocalizationKit';
3332
3333try {
3334  let locale: intl.Locale = new intl.Locale('zh-Hans-CN');
3335  let formatter: i18n.SimpleDateTimeFormat = i18n.getSimpleDateTimeFormatByPattern("'month('M')'", locale);
3336} catch (error) {
3337  let err: BusinessError = error as BusinessError;
3338  console.error(`call i18n.getSimpleDateTimeFormatByPattern failed, error code: ${err.code}, message: ${err.message}.`);
3339}
3340```
3341
3342## i18n.getSimpleDateTimeFormatBySkeleton<sup>20+</sup>
3343
3344getSimpleDateTimeFormatBySkeleton(skeleton: string, locale?: Intl.Locale): SimpleDateTimeFormat
3345
3346通过框架字符串获取SimpleDateTimeFormat对象。与[getSimpleDateTimeFormatByPattern](#i18ngetsimpledatetimeformatbypattern20)接口获取的对象在格式化后显示差异请参考[SimpleDateTimeFormat.format](#format18)的示例。
3347
3348**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
3349
3350**系统能力:** SystemCapability.Global.I18n
3351
3352**参数:**
3353
3354| 参数名    | 类型     | 必填   | 说明                                       |
3355| ------- | ----------- | ----- | ---------------------------------------- |
3356| skeleton | string      | 是    | 合法的框架字符串,支持[日期字段符号表](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table)中Field Patterns值的自由组合。skeleton不支持传入自定义文本。 |
3357| locale  | [Intl.Locale](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) | 否    | 区域对象。默认值:系统区域对象。 |
3358
3359**返回值:**
3360
3361| 类型                     | 说明    |
3362| ---------------------- | ----- |
3363| [SimpleDateTimeFormat](#simpledatetimeformat18) | SimpleDateTimeFormat对象。 |
3364
3365**错误码:**
3366
3367以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)。
3368
3369| 错误码ID  | 错误信息                   |
3370| ------ | ---------------------- |
3371| 8900001 | Invalid parameter. Possible causes: Parameter verification failed. |
3372
3373**示例:**
3374```ts
3375import { BusinessError } from '@kit.BasicServicesKit';
3376
3377try {
3378  let locale: Intl.Locale = new Intl.Locale('zh-Hans-CN');
3379  let formatter: i18n.SimpleDateTimeFormat = i18n.getSimpleDateTimeFormatBySkeleton('yMd', locale);
3380} catch (error) {
3381  let err: BusinessError = error as BusinessError;
3382  console.error(`call i18n.getSimpleDateTimeFormatBySkeleton failed, error code: ${err.code}, message: ${err.message}.`);
3383}
3384```
3385
3386## i18n.getSimpleDateTimeFormatBySkeleton<sup>(deprecated)</sup>
3387
3388getSimpleDateTimeFormatBySkeleton(skeleton: string, locale?: intl.Locale): SimpleDateTimeFormat
3389
3390> 从API version 18开始支持,从API version 20开始废弃,建议使用[getSimpleDateTimeFormatBySkeleton](#i18ngetsimpledatetimeformatbyskeleton20)替代。
3391
3392通过框架字符串获取SimpleDateTimeFormat对象。与[getSimpleDateTimeFormatByPattern](#i18ngetsimpledatetimeformatbypatterndeprecated)接口获取的对象在格式化后显示差异请参考[SimpleDateTimeFormat.format](#format18)的示例。
3393
3394**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
3395
3396**系统能力:** SystemCapability.Global.I18n
3397
3398**参数:**
3399
3400| 参数名    | 类型     | 必填   | 说明                                       |
3401| ------- | ----------- | ----- | ---------------------------------------- |
3402| skeleton | string      | 是    | 合法的框架字符串,支持[日期字段符号表](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table)中Field Patterns值的自由组合。skeleton不支持传入自定义文本。 |
3403| locale  | [intl.Locale](./js-apis-intl.md#localedeprecated) | 否    | 区域对象。默认值:系统区域对象。 |
3404
3405**返回值:**
3406
3407| 类型                     | 说明    |
3408| ---------------------- | ----- |
3409| [SimpleDateTimeFormat](#simpledatetimeformat18) | SimpleDateTimeFormat对象。 |
3410
3411**错误码:**
3412
3413以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)。
3414
3415| 错误码ID  | 错误信息                   |
3416| ------ | ---------------------- |
3417| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
3418
3419**示例:**
3420```ts
3421import { BusinessError } from '@kit.BasicServicesKit';
3422import { intl } from '@kit.LocalizationKit';
3423
3424try {
3425  let locale: intl.Locale = new intl.Locale('zh-Hans-CN');
3426  let formatter: i18n.SimpleDateTimeFormat = i18n.getSimpleDateTimeFormatBySkeleton('yMd', locale);
3427} catch (error) {
3428  let err: BusinessError = error as BusinessError;
3429  console.error(`call i18n.getSimpleDateTimeFormatBySkeleton failed, error code: ${err.code}, message: ${err.message}.`);
3430}
3431```
3432
3433## SimpleDateTimeFormat<sup>18+</sup>
3434
3435提供时间日期格式化的能力。
3436
3437### format<sup>18+</sup>
3438
3439format(date: Date): string
3440
3441对时间、日期进行格式化。
3442
3443**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
3444
3445**系统能力:** SystemCapability.Global.I18n
3446
3447**参数:**
3448
3449| 参数名  | 类型   | 必填   | 说明                |
3450| ---- | ---- | ---- | ----------------- |
3451| date | Date | 是    | 时间、日期。说明:月份从0开始计数,例如0表示一月。 |
3452
3453**返回值:**
3454
3455| 类型                     | 说明    |
3456| ---------------------- | ----- |
3457| string | 格式化后的时间、日期字符串。 |
3458
3459**示例:**
3460  ```ts
3461  import { BusinessError } from '@kit.BasicServicesKit';
3462
3463  try {
3464    let locale : Intl.Locale = new Intl.Locale("zh-Hans-CN");
3465    let date : Date = new Date(2024, 11, 13); // 时间日期为2024.12.13
3466
3467    let formatterWithText: i18n.SimpleDateTimeFormat =
3468      i18n.getSimpleDateTimeFormatByPattern("'month('M')'", locale);
3469    let formattedDate: string = formatterWithText.format(date); // formattedDate = 'month(12)'
3470
3471    let patternFormatter: i18n.SimpleDateTimeFormat = i18n.getSimpleDateTimeFormatByPattern('yMd', locale);
3472    formattedDate = patternFormatter.format(date); // formattedDate = '20241213'
3473
3474    let skeletonFormatter: i18n.SimpleDateTimeFormat = i18n.getSimpleDateTimeFormatBySkeleton('yMd', locale);
3475    formattedDate = skeletonFormatter.format(date); // formattedDate = '2024/12/13'
3476  } catch (error) {
3477    let err: BusinessError = error as BusinessError;
3478    console.error(`call SimpleDateTimeFormat.format failed, error code: ${err.code}, message: ${err.message}.`);
3479  }
3480  ```
3481
3482
3483## i18n.getSimpleNumberFormatBySkeleton<sup>20+</sup>
3484
3485getSimpleNumberFormatBySkeleton(skeleton: string, locale?: Intl.Locale): SimpleNumberFormat
3486
3487通过框架字符串获取SimpleNumberFormat对象。
3488
3489**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
3490
3491**系统能力:** SystemCapability.Global.I18n
3492
3493**参数:**
3494
3495| 参数名    | 类型     | 必填   | 说明                                       |
3496| ------- | ----------- | ----- | ---------------------------------------- |
3497| skeleton | string      | 是    | 合法的框架字符串,支持的字符及含义请参考[Number Skeletons](https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#number-skeletons)。 |
3498| locale  | [Intl.Locale](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) | 否    | 区域对象。默认值:系统区域对象。 |
3499
3500**返回值:**
3501
3502| 类型                     | 说明    |
3503| ---------------------- | ----- |
3504| [SimpleNumberFormat](#simplenumberformat18) | SimpleNumberFormat对象。 |
3505
3506**错误码:**
3507
3508以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)。
3509
3510| 错误码ID  | 错误信息                   |
3511| ------ | ---------------------- |
3512| 8900001 | Invalid parameter. Possible causes: Parameter verification failed. |
3513
3514**示例:**
3515```ts
3516import { BusinessError } from '@kit.BasicServicesKit';
3517
3518try {
3519  let locale: Intl.Locale = new Intl.Locale('zh-Hans-CN');
3520  let formatter: i18n.SimpleNumberFormat = i18n.getSimpleNumberFormatBySkeleton('%', locale);
3521} catch (error) {
3522  let err: BusinessError = error as BusinessError;
3523  console.error(`call SimpleDateTimeFormat.getSimpleNumberFormatBySkeleton failed, error code: ${err.code}, message: ${err.message}.`);
3524}
3525```
3526
3527## i18n.getSimpleNumberFormatBySkeleton<sup>(deprecated)</sup>
3528
3529getSimpleNumberFormatBySkeleton(skeleton: string, locale?: intl.Locale): SimpleNumberFormat
3530
3531> 从API version 18开始支持,从API version 20开始废弃,建议使用[getSimpleNumberFormatBySkeleton](#i18ngetsimplenumberformatbyskeleton20)替代。
3532
3533通过框架字符串获取SimpleNumberFormat对象。
3534
3535**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
3536
3537**系统能力:** SystemCapability.Global.I18n
3538
3539**参数:**
3540
3541| 参数名    | 类型     | 必填   | 说明                                       |
3542| ------- | ----------- | ----- | ---------------------------------------- |
3543| skeleton | string      | 是    | 合法的框架字符串,支持的字符及含义请参考[Number Skeletons](https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#number-skeletons)。 |
3544| locale  | [intl.Locale](./js-apis-intl.md#localedeprecated) | 否    | 区域对象。默认值:系统区域对象。 |
3545
3546**返回值:**
3547
3548| 类型                     | 说明    |
3549| ---------------------- | ----- |
3550| [SimpleNumberFormat](#simplenumberformat18) | SimpleNumberFormat对象。 |
3551
3552**错误码:**
3553
3554以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)。
3555
3556| 错误码ID  | 错误信息                   |
3557| ------ | ---------------------- |
3558| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
3559
3560**示例:**
3561```ts
3562import { BusinessError } from '@kit.BasicServicesKit';
3563import { intl } from '@kit.LocalizationKit';
3564
3565try {
3566  let locale: intl.Locale = new intl.Locale('zh-Hans-CN');
3567  let formatter: i18n.SimpleNumberFormat = i18n.getSimpleNumberFormatBySkeleton('%', locale);
3568} catch (error) {
3569  let err: BusinessError = error as BusinessError;
3570  console.error(`call SimpleDateTimeFormat.getSimpleNumberFormatBySkeleton failed, error code: ${err.code}, message: ${err.message}.`);
3571}
3572```
3573
3574## SimpleNumberFormat<sup>18+</sup>
3575
3576提供数字格式化的能力。
3577
3578### format<sup>18+</sup>
3579
3580format(value: number): string
3581
3582对数字进行格式化。
3583
3584**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
3585
3586**系统能力:** SystemCapability.Global.I18n
3587
3588**参数:**
3589
3590| 参数名  | 类型   | 必填   | 说明                |
3591| ---- | ---- | ---- | ----------------- |
3592| value | number | 是    | 数字对象。 |
3593
3594**返回值:**
3595
3596| 类型                     | 说明    |
3597| ---------------------- | ----- |
3598| string | 格式化后的数字字符串。 |
3599
3600**示例:**
3601```ts
3602import { BusinessError } from '@kit.BasicServicesKit';
3603
3604try {
3605  let locale: Intl.Locale = new Intl.Locale('zh-Hans-CN');
3606  let formatter: i18n.SimpleNumberFormat = i18n.getSimpleNumberFormatBySkeleton('%', locale);
3607  let formattedNumber: string = formatter.format(10); // formattedNumber = '10%'
3608} catch (error) {
3609  let err: BusinessError = error as BusinessError;
3610  console.error(`call SimpleNumberFormat.format failed, error code: ${err.code}, message: ${err.message}.`);
3611}
3612```
3613
3614## StyledNumberFormat<sup>18+</sup>
3615
3616提供富文本数字格式化的能力。
3617
3618### constructor<sup>(deprecated)</sup>
3619
3620constructor(numberFormat: intl.NumberFormat | SimpleNumberFormat, options?: StyledNumberFormatOptions)
3621
3622> 从API version 18开始支持,从API version 20开始废弃,建议使用[constructor](#constructor20)替代。
3623
3624创建需要富文本显示的数字格式化的对象。
3625
3626**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
3627
3628**系统能力:** SystemCapability.Global.I18n
3629
3630**参数:**
3631
3632|   参数名  |      类型      | 必填 |     说明      |
3633| --------- | ------------- | ---- | ------------- |
3634| numberFormat | [intl.NumberFormat](js-apis-intl.md#numberformat) \| [SimpleNumberFormat](#simplenumberformat18) | 是   | 用于格式化数字的对象。  |
3635| options | [StyledNumberFormatOptions](#stylednumberformatoptions18) | 否 | 指定数字格式化对象的配置项。默认值:默认的文本样式。  |
3636
3637**示例:**
3638  ```ts
3639  import { BusinessError } from '@kit.BasicServicesKit';
3640  import { intl } from '@kit.LocalizationKit';
3641
3642  try {
3643    let integerTextStyle: TextStyle = new TextStyle({ fontColor: Color.Red });
3644    let decimalTextStyle: TextStyle = new TextStyle({ fontColor: Color.Brown });
3645    let fractionTextStyle: TextStyle = new TextStyle({ fontColor: Color.Blue });
3646    let unitTextStyle: TextStyle = new TextStyle({ fontColor: Color.Green });
3647
3648    // 通过intl.NumberFormat创建StyledNumberFormat对象
3649    let numFmt: intl.NumberFormat = new intl.NumberFormat('zh', { style: 'unit', unit: 'percent' });
3650    let styledNumFmt: i18n.StyledNumberFormat = new i18n.StyledNumberFormat(numFmt, {
3651      integer: integerTextStyle,
3652      decimal: decimalTextStyle,
3653      fraction: fractionTextStyle,
3654      unit: unitTextStyle
3655    });
3656
3657    // 通过SimpleNumberFormat创建StyledNumberFormat对象
3658    let locale: intl.Locale = new intl.Locale('zh');
3659    let simpleNumFmt: i18n.SimpleNumberFormat = i18n.getSimpleNumberFormatBySkeleton('percent', locale);
3660    let styledSimpleNumFmt: i18n.StyledNumberFormat = new i18n.StyledNumberFormat(simpleNumFmt, {
3661      integer: integerTextStyle,
3662      decimal: decimalTextStyle,
3663      fraction: fractionTextStyle,
3664      unit: unitTextStyle
3665    });
3666  } catch (error) {
3667    let err: BusinessError = error as BusinessError;
3668    console.error(`call i18n.StyledNumberFormat failed, error code: ${err.code}, message: ${err.message}.`);
3669  }
3670  ```
3671
3672### constructor<sup>20+</sup>
3673
3674constructor(numberFormat: Intl.NumberFormat | SimpleNumberFormat, options?: StyledNumberFormatOptions)
3675
3676创建需要富文本显示的数字格式化的对象。
3677
3678**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。
3679
3680**系统能力:** SystemCapability.Global.I18n
3681
3682**参数:**
3683
3684|   参数名  |      类型      | 必填 |     说明      |
3685| --------- | ------------- | ---- | ------------- |
3686| numberFormat | [Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat) \| [SimpleNumberFormat](#simplenumberformat18) | 是   | 用于格式化数字的对象。  |
3687| options | [StyledNumberFormatOptions](#stylednumberformatoptions18) | 否 | 指定数字格式化对象的配置项。默认值:默认的文本样式。  |
3688
3689**示例:**
3690  ```ts
3691  import { BusinessError } from '@kit.BasicServicesKit';
3692
3693  try {
3694    let integerTextStyle: TextStyle = new TextStyle({ fontColor: Color.Red });
3695    let decimalTextStyle: TextStyle = new TextStyle({ fontColor: Color.Brown });
3696    let fractionTextStyle: TextStyle = new TextStyle({ fontColor: Color.Blue });
3697    let unitTextStyle: TextStyle = new TextStyle({ fontColor: Color.Green });
3698
3699    // 通过Intl.NumberFormat创建StyledNumberFormat对象
3700    let numFmt: Intl.NumberFormat = new Intl.NumberFormat('zh', { style: 'unit', unit: 'percent' });
3701    let styledNumFmt: i18n.StyledNumberFormat = new i18n.StyledNumberFormat(numFmt, {
3702      integer: integerTextStyle,
3703      decimal: decimalTextStyle,
3704      fraction: fractionTextStyle,
3705      unit: unitTextStyle
3706    });
3707
3708    // 通过SimpleNumberFormat创建StyledNumberFormat对象
3709    let locale: Intl.Locale = new Intl.Locale('zh');
3710    let simpleNumFmt: i18n.SimpleNumberFormat = i18n.getSimpleNumberFormatBySkeleton('percent', locale);
3711    let styledSimpleNumFmt: i18n.StyledNumberFormat = new i18n.StyledNumberFormat(simpleNumFmt, {
3712      integer: integerTextStyle,
3713      decimal: decimalTextStyle,
3714      fraction: fractionTextStyle,
3715      unit: unitTextStyle
3716    });
3717  } catch (error) {
3718    let err: BusinessError = error as BusinessError;
3719    console.error(`call i18n.StyledNumberFormat failed, error code: ${err.code}, message: ${err.message}.`);
3720  }
3721  ```
3722
3723### format<sup>18+</sup>
3724
3725format(value: number): StyledString
3726
3727使用数字格式化对象对数字进行格式化,返回富文本对象。
3728
3729**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
3730
3731**系统能力:** SystemCapability.Global.I18n
3732
3733**参数:**
3734
3735|   参数名  |      类型      | 必填 |     说明      |
3736| --------- | ------------- | ---- | ------------- |
3737| value | number | 是 | 需要格式化的数字。  |
3738
3739**返回值:**
3740
3741|       类型        |         说明          |
3742| ----------------- | ----------------------|
3743| [StyledString](../apis-arkui/arkui-ts/ts-universal-styled-string.md#styledstring) | 格式化后的富文本对象。 |
3744
3745**示例:**
3746  ```ts
3747  import { BusinessError } from '@kit.BasicServicesKit';
3748
3749  try {
3750    let integerTextStyle: TextStyle = new TextStyle({ fontColor: Color.Red });
3751    let decimalTextStyle: TextStyle = new TextStyle({ fontColor: Color.Brown });
3752    let fractionTextStyle: TextStyle = new TextStyle({ fontColor: Color.Blue });
3753    let unitTextStyle: TextStyle = new TextStyle({ fontColor: Color.Green });
3754
3755    // 通过Intl.NumberFormat创建StyledNumberFormat对象
3756    let numFmt: Intl.NumberFormat = new Intl.NumberFormat('zh', { style: 'unit', unit: 'percent' });
3757    let styledNumFmt: i18n.StyledNumberFormat = new i18n.StyledNumberFormat(numFmt, {
3758      integer: integerTextStyle,
3759      decimal: decimalTextStyle,
3760      fraction: fractionTextStyle,
3761      unit: unitTextStyle
3762    });
3763    // formattedNumber.getString() 为 '1,234.568%'。显示formattedNumber时'1,234'是红色,'.'是棕色,'568'是蓝色,'%'是绿色。
3764    let formattedNumber: StyledString = styledNumFmt.format(1234.5678);
3765
3766    // 通过SimpleNumberFormat创建StyledNumberFormat对象
3767    let locale: Intl.Locale = new Intl.Locale('zh');
3768    let simpleNumFmt: i18n.SimpleNumberFormat = i18n.getSimpleNumberFormatBySkeleton('percent', locale);
3769    let styledSimpleNumFmt: i18n.StyledNumberFormat = new i18n.StyledNumberFormat(simpleNumFmt, {
3770      integer: integerTextStyle,
3771      decimal: decimalTextStyle,
3772      fraction: fractionTextStyle,
3773      unit: unitTextStyle
3774    });
3775    // formattedSimpleNumber.getString() 为 '1,234.5678%'。显示formattedSimpleNumber时'1,234'是红色,'.'是棕色,'5678'是蓝色,'%'是绿色。
3776    let formattedSimpleNumber: StyledString = styledSimpleNumFmt.format(1234.5678);
3777  } catch (error) {
3778    let err: BusinessError = error as BusinessError;
3779    console.error(`call StyledNumberFormat.format failed, error code: ${err.code}, message: ${err.message}.`);
3780  }
3781  ```
3782
3783## StyledNumberFormatOptions<sup>18+</sup>
3784
3785创建富文本显示的数字格式化对象时的可选配置项。
3786
3787**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
3788
3789**系统能力:** SystemCapability.Global.I18n
3790
3791| 名称            | 类型             |  只读   |  可选   |  说明                                   |
3792| --------------- | --------------- | ------  | ------  | --------------------------------------- |
3793| integer        | [TextStyle](../apis-arkui/arkui-ts/ts-universal-styled-string.md#textstyle) |   否    |   是    |  指定整数部分的文本样式。默认值:默认的文本样式。     |
3794| decimal        | [TextStyle](../apis-arkui/arkui-ts/ts-universal-styled-string.md#textstyle) |   否    |   是    |  指定小数点的文本样式。默认值:默认的文本样式。    |
3795| fraction       | [TextStyle](../apis-arkui/arkui-ts/ts-universal-styled-string.md#textstyle) |   否    |   是    |  指定小数部分的文本样式。默认值:默认的文本样式。     |
3796| unit           | [TextStyle](../apis-arkui/arkui-ts/ts-universal-styled-string.md#textstyle) |   否    |   是    |  指定单位部分的文本样式。默认值:默认的文本样式。     |
3797
3798## i18n.getDisplayCountry<sup>(deprecated)</sup>
3799
3800getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): string
3801
3802> 从API version 7开始支持,从API version 9开始废弃,建议使用[System.getDisplayCountry](#getdisplaycountry9)替代。
3803
3804获取指定国家的本地化名称。
3805
3806**系统能力:** SystemCapability.Global.I18n
3807
3808**参数:**
3809
3810| 参数名          | 类型      | 必填   | 说明               |
3811| ------------ | ------- | ---- | ---------------- |
3812| country      | string  | 是    | 指定国家。            |
3813| locale       | string  | 是    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成。      |
3814| sentenceCase | boolean | 否    | true表示按照首字母大写的格式显示文本,false表示按照区域默认的大小写格式显示文本。默认值:true。 |
3815
3816**返回值:**
3817
3818| 类型     | 说明            |
3819| ------ | ------------- |
3820| string | 指定国家的本地化显示文本。 |
3821
3822**示例:**
3823  ```ts
3824  let countryName: string = i18n.getDisplayCountry('zh-CN', 'en-GB', true); // countryName = 'China'
3825  countryName = i18n.getDisplayCountry('zh-CN', 'en-GB'); // countryName = 'China'
3826  ```
3827
3828## i18n.getDisplayLanguage<sup>(deprecated)</sup>
3829
3830getDisplayLanguage(language: string, locale: string, sentenceCase?: boolean): string
3831
3832> 从API version 7开始支持,从API version 9开始废弃,建议使用[System.getDisplayLanguage](#getdisplaylanguage9)替代。
3833
3834获取指定语言的本地化显示文本。
3835
3836**系统能力:** SystemCapability.Global.I18n
3837
3838**参数:**
3839
3840| 参数名          | 类型      | 必填   | 说明               |
3841| ------------ | ------- | ---- | ---------------- |
3842| language     | string  | 是    | 指定语言。            |
3843| locale       | string  | 是    | [表示区域ID的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家地区组成。      |
3844| sentenceCase | boolean | 否    | true表示按照首字母大写的格式显示文本,false表示按照区域默认的大小写格式显示文本。默认值:true。 |
3845
3846**返回值:**
3847
3848| 类型     | 说明            |
3849| ------ | ------------- |
3850| string | 指定语言的本地化显示文本。 |
3851
3852**示例:**
3853  ```ts
3854  let languageName: string = i18n.getDisplayLanguage('zh', 'en-GB', true); // languageName = 'Chinese'
3855  languageName = i18n.getDisplayLanguage('zh', 'en-GB'); // languageName = 'Chinese'
3856  ```
3857
3858
3859## i18n.getSystemLanguage<sup>(deprecated)</sup>
3860
3861getSystemLanguage(): string
3862
3863> 从API version 7开始支持,从API version 9开始废弃,建议使用[System.getSystemLanguage](#getsystemlanguage9)替代。
3864
3865获取系统语言。
3866
3867**系统能力:** SystemCapability.Global.I18n
3868
3869**返回值:**
3870
3871| 类型     | 说明      |
3872| ------ | ------- |
3873| string | 系统语言ID。 |
3874
3875**示例:**
3876  ```ts
3877  let systemLanguage: string = i18n.getSystemLanguage();
3878  ```
3879
3880
3881## i18n.getSystemRegion<sup>(deprecated)</sup>
3882
3883getSystemRegion(): string
3884
3885> 从API version 7开始支持,从API version 9开始废弃,建议使用[System.getSystemRegion](#getsystemregion9)替代。
3886
3887获取系统地区。
3888
3889**系统能力:** SystemCapability.Global.I18n
3890
3891**返回值:**
3892
3893| 类型     | 说明      |
3894| ------ | ------- |
3895| string | 系统地区ID。 |
3896
3897**示例:**
3898  ```ts
3899  let region: string = i18n.getSystemRegion();
3900  ```
3901
3902
3903## i18n.getSystemLocale<sup>(deprecated)</sup>
3904
3905getSystemLocale(): string
3906
3907> 从API version 7开始支持,从API version 9开始废弃,建议使用[System.getSystemLocaleInstance](#getsystemlocaleinstance20)代替。
3908
3909获取系统区域ID。
3910
3911**系统能力:** SystemCapability.Global.I18n
3912
3913**返回值:**
3914
3915| 类型     | 说明      |
3916| ------ | ------- |
3917| string | 系统区域ID。 |
3918
3919**示例:**
3920  ```ts
3921  let locale: string = i18n.getSystemLocale();
3922  ```
3923
3924
3925## i18n.is24HourClock<sup>(deprecated)</sup>
3926
3927is24HourClock(): boolean
3928
3929> 从API version 7开始支持,从API version 9开始废弃,建议使用[System.is24HourClock](#is24hourclock9)替代。
3930
3931判断系统时间是否为24小时制。
3932
3933**系统能力:** SystemCapability.Global.I18n
3934
3935**返回值:**
3936
3937| 类型      | 说明                                       |
3938| ------- | ---------------------------------------- |
3939| boolean | true表示系统24小时开关开启,false表示系统24小时开关关闭。 |
3940
3941**示例:**
3942  ```ts
3943  let is24HourClock: boolean = i18n.is24HourClock();
3944  ```
3945
3946
3947## i18n.set24HourClock<sup>(deprecated)</sup>
3948
3949set24HourClock(option: boolean): boolean
3950
3951> 从API version 7开始支持,从API version 9开始废弃,替代接口仅支持系统应用使用。
3952
3953修改系统时间的24小时制设置。
3954
3955**需要权限**:ohos.permission.UPDATE_CONFIGURATION
3956
3957**系统能力:** SystemCapability.Global.I18n
3958
3959**参数:**
3960
3961| 参数名    | 类型      | 必填   | 说明                                       |
3962| ------ | ------- | ---- | ---------------------------------------- |
3963| option | boolean | 是    | true表示开启系统24小时制开关,false表示关闭系统24小时制开关。 |
3964
3965**返回值:**
3966
3967| 类型      | 说明                            |
3968| ------- | ----------------------------- |
3969| boolean | true表示修改成功,false表示修改失败。 |
3970
3971**示例:**
3972  ```ts
3973  // 将系统时间设置为24小时制
3974  let success: boolean = i18n.set24HourClock(true);
3975  ```
3976
3977
3978## i18n.addPreferredLanguage<sup>(deprecated)</sup>
3979
3980addPreferredLanguage(language: string, index?: number): boolean
3981
3982> 从API version 8开始支持,从API version 9开始废弃,替代接口仅支持系统应用使用。
3983
3984在系统偏好语言列表的指定位置添加偏好语言。
3985
3986**需要权限**:ohos.permission.UPDATE_CONFIGURATION
3987
3988**系统能力:** SystemCapability.Global.I18n
3989
3990**参数:**
3991
3992| 参数名      | 类型     | 必填   | 说明         |
3993| -------- | ------ | ---- | ---------- |
3994| language | string | 是    | 待添加的偏好语言。  |
3995| index    | number | 否    | 偏好语言的添加位置。默认值:系统偏好语言列表长度。 |
3996
3997**返回值:**
3998
3999| 类型      | 说明                            |
4000| ------- | ----------------------------- |
4001| boolean | true表示添加成功,false表示添加失败。 |
4002
4003**示例:**
4004  ```ts
4005  // 将语言zh-CN添加到系统偏好语言列表中
4006  let language: string = 'zh-CN';
4007  let index: number = 0;
4008  let success: boolean = i18n.addPreferredLanguage(language, index);
4009  ```
4010
4011
4012## i18n.removePreferredLanguage<sup>(deprecated)</sup>
4013
4014removePreferredLanguage(index: number): boolean
4015
4016> 从API version 8开始支持,从API version 9开始废弃,替代接口仅支持系统应用使用。
4017
4018从系统偏好语言列表中移除指定位置的偏好语言。
4019
4020**需要权限**:ohos.permission.UPDATE_CONFIGURATION
4021
4022**系统能力:** SystemCapability.Global.I18n
4023
4024**参数:**
4025
4026| 参数名   | 类型     | 必填   | 说明                    |
4027| ----- | ------ | ---- | --------------------- |
4028| index | number | 是    | 待移除偏好语言在系统偏好语言列表中的位置。 |
4029
4030**返回值:**
4031
4032| 类型      | 说明                            |
4033| ------- | ----------------------------- |
4034| boolean | true表示移除成功,false表示移除失败。 |
4035
4036**示例:**
4037  ```ts
4038  // 移除系统偏好语言列表中的第一个偏好语言
4039  let index: number = 0;
4040  let success: boolean = i18n.removePreferredLanguage(index);
4041  ```
4042
4043
4044## i18n.getPreferredLanguageList<sup>(deprecated)</sup>
4045
4046getPreferredLanguageList(): Array&lt;string&gt;
4047
4048> 从API version 8开始支持,从API version 9开始废弃,建议使用[System.getPreferredLanguageList](#getpreferredlanguagelist9)替代。
4049
4050获取系统偏好语言列表。
4051
4052**系统能力:** SystemCapability.Global.I18n
4053
4054**返回值:**
4055
4056| 类型                  | 说明        |
4057| ------------------- | --------- |
4058| Array&lt;string&gt; | 系统偏好语言列表。 |
4059
4060**示例:**
4061  ```ts
4062  let preferredLanguageList: Array<string> = i18n.getPreferredLanguageList();
4063  ```
4064
4065
4066## i18n.getFirstPreferredLanguage<sup>(deprecated)</sup>
4067
4068getFirstPreferredLanguage(): string
4069
4070> 从API version 8开始支持,从API version 9开始废弃,建议使用[System.getFirstPreferredLanguage](#getfirstpreferredlanguage9)替代。
4071
4072获取偏好语言列表中的第一个语言。
4073
4074**系统能力:** SystemCapability.Global.I18n
4075
4076**返回值:**
4077
4078| 类型     | 说明             |
4079| ------ | -------------- |
4080| string | 偏好语言列表中的第一个语言。 |
4081
4082**示例:**
4083  ```ts
4084  let firstPreferredLanguage: string = i18n.getFirstPreferredLanguage();
4085  ```
4086
4087
4088## Util<sup>(deprecated)</sup>
4089
4090
4091### unitConvert<sup>(deprecated)</sup>
4092
4093unitConvert(fromUnit: UnitInfo, toUnit: UnitInfo, value: number, locale: string, style?: string): string
4094
4095> 从API version 8开始支持,从API version 9开始废弃,建议使用[unitConvert](#unitconvert9)替代。
4096
4097将fromUnit的单位转换为toUnit的单位,并根据区域与风格进行格式化。
4098
4099**系统能力:** SystemCapability.Global.I18n
4100
4101**参数:**
4102
4103| 参数名      | 类型                     | 必填   | 说明                                       |
4104| -------- | ---------------------- | ---- | ---------------------------------------- |
4105| fromUnit | [UnitInfo](#unitinfo8) | 是    | 要被转换的单位。                                 |
4106| toUnit   | [UnitInfo](#unitinfo8) | 是    | 要转换为的单位。                                 |
4107| value    | number                 | 是    | 要被转换的单位的数量值。                             |
4108| locale   | string                 | 是    | 格式化时使用的区域ID,如:zh-Hans-CN。                |
4109| style    | string                 | 否    | 格式化使用的风格,取值包括:'long',&nbsp;'short',&nbsp;'narrow'。默认值:short。 |
4110
4111**返回值:**
4112
4113| 类型     | 说明                      |
4114| ------ | ----------------------- |
4115| string | 按照toUnit的单位格式化后,得到的字符串。 |
4116
4117
4118## Character<sup>(deprecated)</sup>
4119
4120
4121### isDigit<sup>(deprecated)</sup>
4122
4123isDigit(ch: string): boolean
4124
4125> 从API version 8开始支持,从API version 9开始废弃,建议使用[isDigit](#isdigit9)替代。
4126
4127判断输入的字符是否是数字。
4128
4129**系统能力:** SystemCapability.Global.I18n
4130
4131**参数:**
4132
4133| 参数名  | 类型     | 必填   | 说明    |
4134| ---- | ------ | ---- | ----- |
4135| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
4136
4137**返回值:**
4138
4139| 类型      | 说明                                   |
4140| ------- | ------------------------------------ |
4141| boolean | true表示输入的字符是数字,false表示输入的字符不是数字。 |
4142
4143
4144### isSpaceChar<sup>(deprecated)</sup>
4145
4146isSpaceChar(ch: string): boolean
4147
4148> 从API version 8开始支持,从API version 9开始废弃,建议使用[isSpaceChar](#isspacechar9)替代。
4149
4150判断输入的字符是否是空格符。
4151
4152**系统能力:** SystemCapability.Global.I18n
4153
4154**参数:**
4155
4156| 参数名  | 类型     | 必填   | 说明    |
4157| ---- | ------ | ---- | ----- |
4158| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
4159
4160**返回值:**
4161
4162| 类型      | 说明                                     |
4163| ------- | -------------------------------------- |
4164| boolean | true表示输入的字符是空格符,false表示输入的字符不是空格符。 |
4165
4166
4167### isWhitespace<sup>(deprecated)</sup>
4168
4169isWhitespace(ch: string): boolean
4170
4171> 从API version 8开始支持,从API version 9开始废弃,建议使用[isWhitespace](#iswhitespace9)替代。
4172
4173判断输入的字符是否是空白符。
4174
4175**系统能力:** SystemCapability.Global.I18n
4176
4177**参数:**
4178
4179| 参数名  | 类型     | 必填   | 说明    |
4180| ---- | ------ | ---- | ----- |
4181| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
4182
4183**返回值:**
4184
4185| 类型      | 说明                                     |
4186| ------- | -------------------------------------- |
4187| boolean | true表示输入的字符是空白符,false表示输入的字符不是空白符。 |
4188
4189
4190### isRTL<sup>(deprecated)</sup>
4191
4192isRTL(ch: string): boolean
4193
4194> 从API version 8开始支持,从API version 9开始废弃,建议使用[isRTL](#isrtl9)替代。
4195
4196判断输入的字符是否是从右到左语言的字符。
4197
4198**系统能力:** SystemCapability.Global.I18n
4199
4200**参数:**
4201
4202| 参数名  | 类型     | 必填   | 说明    |
4203| ---- | ------ | ---- | ----- |
4204| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
4205
4206**返回值:**
4207
4208| 类型      | 说明                                       |
4209| ------- | ---------------------------------------- |
4210| boolean | true表示输入的字符是从右到左语言的字符,false表示输入的字符不是从右到左语言的字符。 |
4211
4212
4213### isIdeograph<sup>(deprecated)</sup>
4214
4215isIdeograph(ch: string): boolean
4216
4217> 从API version 8开始支持,从API version 9开始废弃,建议使用[isIdeograph](#isideograph9)替代。
4218
4219判断输入的字符是否是表意文字。
4220
4221**系统能力:** SystemCapability.Global.I18n
4222
4223**参数:**
4224
4225| 参数名  | 类型     | 必填   | 说明    |
4226| ---- | ------ | ---- | ----- |
4227| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
4228
4229**返回值:**
4230
4231| 类型      | 说明                                       |
4232| ------- | ---------------------------------------- |
4233| boolean | true表示输入的字符是表意文字,false表示输入的字符不是表意文字。 |
4234
4235
4236### isLetter<sup>(deprecated)</sup>
4237
4238isLetter(ch: string): boolean
4239
4240> 从API version 8开始支持,从API version 9开始废弃,建议使用[isLetter](#isletter9)替代。
4241
4242判断输入的字符是否是字母。
4243
4244**系统能力:** SystemCapability.Global.I18n
4245
4246**参数:**
4247
4248| 参数名  | 类型     | 必填   | 说明    |
4249| ---- | ------ | ---- | ----- |
4250| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
4251
4252**返回值:**
4253
4254| 类型      | 说明                                   |
4255| ------- | ------------------------------------ |
4256| boolean | true表示输入的字符是字母,false表示输入的字符不是字母。 |
4257
4258
4259### isLowerCase<sup>(deprecated)</sup>
4260
4261isLowerCase(ch: string): boolean
4262
4263> 从API version 8开始支持,从API version 9开始废弃,建议使用[isLowerCase](#islowercase9)替代。
4264
4265判断输入的字符是否是小写字母。
4266
4267**系统能力:** SystemCapability.Global.I18n
4268
4269**参数:**
4270
4271| 参数名  | 类型     | 必填   | 说明    |
4272| ---- | ------ | ---- | ----- |
4273| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
4274
4275**返回值:**
4276
4277| 类型      | 说明                                       |
4278| ------- | ---------------------------------------- |
4279| boolean | true表示输入的字符是小写字母,false表示输入的字符不是小写字母。 |
4280
4281
4282### isUpperCase<sup>(deprecated)</sup>
4283
4284isUpperCase(ch: string): boolean
4285
4286> 从API version 8开始支持,从API version 9开始废弃,建议使用[isUpperCase](#isuppercase9)替代。
4287
4288判断输入的字符是否是大写字母。
4289
4290**系统能力:** SystemCapability.Global.I18n
4291
4292**参数:**
4293
4294| 参数名  | 类型     | 必填   | 说明    |
4295| ---- | ------ | ---- | ----- |
4296| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
4297
4298**返回值:**
4299
4300| 类型      | 说明                                       |
4301| ------- | ---------------------------------------- |
4302| boolean | true表示输入的字符是大写字母,false表示输入的字符不是大写字母。 |
4303
4304
4305### getType<sup>(deprecated)</sup>
4306
4307getType(ch: string): string
4308
4309> 从API version 8开始支持,从API version 9开始废弃,建议使用[getType](#gettype9)替代。
4310
4311获取输入的字符的一般类别值。
4312
4313**系统能力:** SystemCapability.Global.I18n
4314
4315**参数:**
4316
4317| 参数名  | 类型     | 必填   | 说明    |
4318| ---- | ------ | ---- | ----- |
4319| ch | string | 是    | 输入的字符。如果输入的是字符串,则只判断首字符的类别。 |
4320
4321**返回值:**
4322
4323| 类型     | 说明          |
4324| ------ | ----------- |
4325| string | 输入字符的一般类别值。 |
4326