1# @ohos.i18n (国际化-I18n)
2
3本模块提供系统相关的或者增强的国际化能力,包括区域管理、电话号码处理、日历等,相关接口为ECMA 402标准中未定义的补充接口。[Intl模块](js-apis-intl.md)提供了ECMA 402标准定义的基础国际化接口,与本模块共同使用可提供完整地国际化支持能力。
4
5>  **说明:**
6>
7>  - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8>
9>  - 本模块接口依据[CLDR](https://cldr.unicode.org) 国际化数据库进行处理,随着CLDR演进,本模块接口处理结果可能发生变化。其中,API version 12对应[CLDR 42](https://cldr.unicode.org/index/downloads/cldr-42),具体数据变化请参考官方链接。
10>
11>  - 从API version 11开始,本模块部分接口支持在ArkTS卡片中使用。
12
13
14## 导入模块
15
16```ts
17import { i18n } from '@kit.LocalizationKit';
18```
19
20## System<sup>9+</sup>
21
22### getDisplayCountry<sup>9+</sup>
23
24static getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): string
25
26文本按指定国家进行本地化显示。
27
28**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
29
30**系统能力**:SystemCapability.Global.I18n
31
32**参数:**
33
34| 参数名          | 类型      | 必填   | 说明               |
35| ------------ | ------- | ---- | ---------------- |
36| country      | string  | 是    | 用于指定国家,要求是合法的国家码。            |
37| locale       | string  | 是    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成。     |
38| sentenceCase | boolean | 否    | 本地化显示文本时,首字母是否大写。默认值:true。 |
39
40**返回值:**
41
42| 类型     | 说明            |
43| ------ | ------------- |
44| string | 按指定国家,本地化显示的文本。 |
45
46**错误码:**
47
48以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
49
50| 错误码ID  | 错误信息                   |
51| ------ | ---------------------- |
52| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
53| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
54
55> **说明**
56>
57> 890001的报错信息请以接口的实际报错为准。
58
59**示例:**
60  ```ts
61  import { BusinessError } from '@kit.BasicServicesKit';
62
63  try {
64      let displayCountry: string = i18n.System.getDisplayCountry("zh-CN", "en-GB"); // displayCountry = "China"
65  } catch (error) {
66      let err: BusinessError = error as BusinessError;
67      console.error(`call System.getDisplayCountry failed, error code: ${err.code}, message: ${err.message}.`);
68  }
69  ```
70
71### getDisplayLanguage<sup>9+</sup>
72
73static getDisplayLanguage(language: string, locale: string, sentenceCase?: boolean): string
74
75文本按指定语言进行本地化显示。例如,getDisplayLanguage("de", "zh-Hans-CN")用中文显示德文,接口输出结果为:德文。
76
77**原子化服务API**: 从API version 11开始,该接口支持在原子化服务中使用。
78
79**系统能力**:SystemCapability.Global.I18n
80
81**参数:**
82
83| 参数名          | 类型      | 必填   | 说明               |
84| ------------ | ------- | ---- | ---------------- |
85| language     | string  | 是    | 指定语言,要求是合法的语言ID。            |
86| locale       | string  | 是    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成。     |
87| sentenceCase | boolean | 否    | 本地化显示文本时,首字母是否大写。默认值:true。 |
88
89**返回值:**
90
91| 类型     | 说明            |
92| ------ | ------------- |
93| string | 按指定语言,本地化显示的语言。 |
94
95**错误码:**
96
97以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
98
99| 错误码ID  | 错误信息                   |
100| ------ | ---------------------- |
101| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
102| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
103
104**示例:**
105  ```ts
106  import { BusinessError } from '@kit.BasicServicesKit';
107
108  try {
109    let displayLanguage: string = i18n.System.getDisplayLanguage("zh", "en-GB"); // 用英文形式显示中文,displayLanguage = Chinese
110  } catch(error) {
111    let err: BusinessError = error as BusinessError;
112    console.error(`call System.getDisplayLanguage failed, error code: ${err.code}, message: ${err.message}.`);
113  }
114  ```
115
116### getSystemLanguages<sup>9+</sup>
117
118static getSystemLanguages(): Array&lt;string&gt;
119
120获取系统支持的语言列表。
121
122从API version 11开始,该类型支持在ArkTS卡片中使用。
123
124**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
125
126**系统能力**:SystemCapability.Global.I18n
127
128**返回值:**
129
130| 类型                  | 说明           |
131| ------------------- | ------------ |
132| Array&lt;string&gt; | 系统支持的语言ID列表。 |
133
134**示例:**
135  ```ts
136  let systemLanguages: Array<string> = i18n.System.getSystemLanguages(); // [ "ug", "bo", "zh-Hant", "en-Latn-US", "zh-Hans" ]
137  ```
138
139### getSystemCountries<sup>9+</sup>
140
141static getSystemCountries(language: string): Array&lt;string&gt;
142
143针对输入语言,系统支持的国家或地区列表。
144
145**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
146
147**系统能力**:SystemCapability.Global.I18n
148
149**参数:**
150
151| 参数名      | 类型     | 必填   | 说明    |
152| -------- | ------ | ---- | ----- |
153| language | string | 是    | 合法的语言ID。 |
154
155**返回值:**
156
157| 类型                  | 说明           |
158| ------------------- | ------------ |
159| Array&lt;string&gt; | 系统支持某种特定语言的国家或地区列表。 |
160
161**错误码:**
162
163以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
164
165| 错误码ID  | 错误信息                   |
166| ------ | ---------------------- |
167| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
168| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
169
170> **说明**
171>
172> 890001的报错信息请以接口的实际报错为准。
173
174**示例:**
175  ```ts
176  import { BusinessError } from '@kit.BasicServicesKit';
177
178  try {
179    let systemCountries: Array<string> = i18n.System.getSystemCountries('zh'); // systemCountries = [ "ZW", "YT", "YE", ..., "ER", "CN", "DE" ]
180  } catch(error) {
181    let err: BusinessError = error as BusinessError;
182    console.error(`call System.getSystemCountries failed, error code: ${err.code}, message: ${err.message}.`);
183  }
184  ```
185
186### isSuggested<sup>9+</sup>
187
188static isSuggested(language: string, region?: string): boolean
189
190判断当前语言和地区是否匹配。
191
192**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
193
194**系统能力**:SystemCapability.Global.I18n
195
196**参数:**
197
198| 参数名      | 类型     | 必填   | 说明            |
199| -------- | ------ | ---- | ------------- |
200| language | string | 是    | 合法的语言ID,例如zh。 |
201| region   | string | 否    | 合法的地区ID,例如CN。<br>默认值:使用SIM卡国家或地区。  |
202
203**返回值:**
204
205| 类型      | 说明                                       |
206| ------- | ---------------------------------------- |
207| boolean | 返回true,表示当前语言和地区匹配;<br>返回false,表示当前语言和地区不匹配。 |
208
209**错误码:**
210
211以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
212
213| 错误码ID  | 错误信息                   |
214| ------ | ---------------------- |
215| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
216| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
217
218
219> **说明**
220>
221> 890001的报错信息请以接口的实际报错为准。
222
223**示例:**
224  ```ts
225  import { BusinessError } from '@kit.BasicServicesKit';
226
227  try {
228    let res: boolean = i18n.System.isSuggested('zh', 'CN');  // res = true
229  } catch(error) {
230    let err: BusinessError = error as BusinessError;
231    console.error(`call System.isSuggested failed, error code: ${err.code}, message: ${err.message}.`);
232  }
233  ```
234
235### getSystemLanguage<sup>9+</sup>
236
237static getSystemLanguage(): string
238
239获取系统语言。
240
241**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。
242
243**卡片能力**:从API version 11开始,该接口支持在ArkTS卡片中使用。
244
245**系统能力**:SystemCapability.Global.I18n
246
247**返回值:**
248
249| 类型     | 说明      |
250| ------ | ------- |
251| string | 系统语言ID。 |
252
253**示例:**
254  ```ts
255  let systemLanguage: string = i18n.System.getSystemLanguage();  // systemLanguage为当前系统语言
256  ```
257
258### getSystemRegion<sup>9+</sup>
259
260static getSystemRegion(): string
261
262获取系统地区。
263
264**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
265
266**系统能力**:SystemCapability.Global.I18n
267
268**返回值:**
269
270| 类型     | 说明      |
271| ------ | ------- |
272| string | 系统地区ID。 |
273
274**示例:**
275  ```ts
276  let systemRegion: string = i18n.System.getSystemRegion(); // 获取系统当前地区设置
277  ```
278
279### getSystemLocale<sup>9+</sup>
280
281static getSystemLocale(): string
282
283获取系统区域。
284
285**原子化服务API**: 从API version 11开始,该接口支持在原子化服务中使用。
286
287**系统能力**:SystemCapability.Global.I18n
288
289**返回值:**
290
291| 类型     | 说明      |
292| ------ | ------- |
293| string | 区域信息的字符串。 |
294
295**示例:**
296  ```ts
297  let systemLocale: string = i18n.System.getSystemLocale();  // 获取系统当前Locale
298  ```
299
300### is24HourClock<sup>9+</sup>
301
302static is24HourClock(): boolean
303
304判断系统时间是否为24小时制。
305
306**卡片能力**:从API version 11开始,该接口支持在ArkTS卡片中使用。
307
308**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
309
310**系统能力**:SystemCapability.Global.I18n
311
312**返回值:**
313
314| 类型      | 说明                                       |
315| ------- | ---------------------------------------- |
316| boolean | 返回true,表示系统24小时开关开启;返回false,表示系统24小时开关关闭。 |
317
318**示例:**
319  ```ts
320  let is24HourClock: boolean = i18n.System.is24HourClock();  // 系统24小时开关是否开启
321  ```
322
323
324### getPreferredLanguageList<sup>9+</sup>
325
326static getPreferredLanguageList(): Array&lt;string&gt;
327
328获取系统偏好语言列表。
329
330**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
331
332**系统能力**:SystemCapability.Global.I18n
333
334**返回值:**
335
336| 类型                  | 说明        |
337| ------------------- | --------- |
338| Array&lt;string&gt; | 系统偏好语言列表。 |
339
340**示例:**
341  ```ts
342  let preferredLanguageList: Array<string> = i18n.System.getPreferredLanguageList(); // 获取系统当前偏好语言列表
343  ```
344
345### getFirstPreferredLanguage<sup>9+</sup>
346
347static getFirstPreferredLanguage(): string
348
349获取系统偏好语言列表中的第一个偏好语言。
350
351**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
352
353**系统能力**:SystemCapability.Global.I18n
354
355**返回值:**
356
357| 类型     | 说明             |
358| ------ | -------------- |
359| string | 偏好语言列表中的第一个语言。 |
360
361**示例:**
362  ```ts
363  let firstPreferredLanguage: string = i18n.System.getFirstPreferredLanguage();  // 获取系统当前偏好语言列表中的第一个偏好语言
364  ```
365
366### setAppPreferredLanguage<sup>11+</sup>
367
368static setAppPreferredLanguage(language: string): void
369
370设置应用的偏好语言。设置偏好语言为"default"后,应用语言将跟随系统语言,应用冷启动生效。
371
372**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
373
374**系统能力**:SystemCapability.Global.I18n
375
376**参数:**
377
378| 参数名      | 类型     | 必填   | 说明    |
379| -------- | ------ | ---- | ----- |
380| language | string | 是    | 合法的语言ID或"default"。 |
381
382**错误码:**
383
384以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
385
386| 错误码ID  | 错误信息                   |
387| ------ | ---------------------- |
388| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
389| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
390
391**示例:**
392  ```ts
393  import { BusinessError } from '@kit.BasicServicesKit';
394
395  try {
396    i18n.System.setAppPreferredLanguage('zh'); // 设置应用当前的偏好语言为 "zh"
397  } catch(error) {
398    let err: BusinessError = error as BusinessError;
399    console.error(`call System.setAppPreferredLanguage failed, error code: ${err.code}, message: ${err.message}.`);
400  }
401  ```
402
403### getAppPreferredLanguage<sup>9+</sup>
404
405static getAppPreferredLanguage(): string
406
407获取应用的偏好语言。
408
409**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
410
411**系统能力**:SystemCapability.Global.I18n
412
413**返回值:**
414
415| 类型     | 说明       |
416| ------ | -------- |
417| string | 应用的偏好语言。 |
418
419**示例:**
420  ```ts
421  let appPreferredLanguage: string = i18n.System.getAppPreferredLanguage(); // 获取应用偏好语言
422  ```
423
424
425### getUsingLocalDigit<sup>9+</sup>
426
427static getUsingLocalDigit(): boolean
428
429判断系统是否使用本地数字。
430
431**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
432
433**系统能力**:SystemCapability.Global.I18n
434
435**返回值:**
436
437| 类型      | 说明                                       |
438| ------- | ---------------------------------------- |
439| boolean | true表示本地数字开关已打开,false表示本地数字开关未打开。 |
440
441**示例:**
442  ```ts
443  let status: boolean = i18n.System.getUsingLocalDigit();  // 判断本地化数字开关是否打开
444  ```
445
446## i18n.isRTL
447
448isRTL(locale: string): boolean
449
450判断某区域语言是否从右到左显示。
451
452**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
453
454**系统能力**:SystemCapability.Global.I18n
455
456**参数:**
457
458| 参数名    | 类型     | 必填   | 说明      |
459| ------ | ------ | ---- | ------- |
460| locale | string | 是    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成。  |
461
462**返回值:**
463
464| 类型      | 说明                                       |
465| ------- | ---------------------------------------- |
466| boolean | true表示该区域语言从右至左显示,false表示该区域语言从左至右显示。 |
467
468**示例:**
469  ```ts
470  i18n.isRTL("zh-CN");// 中文不是RTL语言,返回false
471  i18n.isRTL("ar-EG");// 阿语是RTL语言,返回true
472  ```
473
474## i18n.getCalendar<sup>8+</sup>
475
476getCalendar(locale: string, type? : string): Calendar
477
478获取日历对象。
479
480**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
481
482**系统能力**:SystemCapability.Global.I18n
483
484**参数:**
485
486| 参数名    | 类型     | 必填   | 说明                                       |
487| ------ | ------ | ---- | ---------------------------------------- |
488| locale | string | 是    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成,例如zh-Hans-CN。                 |
489| 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)。 |
490
491**返回值:**
492
493| 类型                     | 说明    |
494| ---------------------- | ----- |
495| [Calendar](#calendar8) | 日历对象。 |
496
497**示例:**
498  ```ts
499  i18n.getCalendar("zh-Hans", "chinese"); // 获取中国农历日历对象
500  ```
501
502## EntityRecognizer<sup>11+</sup>
503
504### constructor<sup>11+</sup>
505
506constructor(locale?: string)
507
508创建实体识别对象。
509
510**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
511
512**系统能力**:SystemCapability.Global.I18n
513
514**参数:**
515
516| 参数名  | 类型   | 必填   | 说明                |
517| ---- | ---- | ---- | ----------------- |
518| locale | string | 否    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成,例如zh-Hans-CN。<br>默认值:系统当前locale。 |
519
520**错误码:**
521
522以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
523
524| 错误码ID  | 错误信息                   |
525| ------ | ---------------------- |
526| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
527| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
528
529**示例:**
530  ```ts
531  let entityRecognizer: i18n.EntityRecognizer = new i18n.EntityRecognizer("zh-CN");
532  ```
533
534### findEntityInfo<sup>11+</sup>
535
536findEntityInfo(text: string): Array&lt;EntityInfoItem&gt;
537
538识别文本中的实体信息。
539
540**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
541
542**系统能力**:SystemCapability.Global.I18n
543
544**参数:**
545
546| 参数名  | 类型   | 必填   | 说明                |
547| ---- | ---- | ---- | ----------------- |
548| text | string | 是    | 需要被识别的文本。 |
549
550**返回值:**
551
552| 类型   | 说明                |
553| ---- | ----------------- |
554| Array&lt;[EntityInfoItem](#entityinfoitem11)&gt; | 文本中的实体信息列表。 |
555
556**错误码:**
557
558以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
559
560| 错误码ID  | 错误信息                   |
561| ------ | ---------------------- |
562| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
563
564**示例:**
565  ```ts
566  let entityRecognizer: i18n.EntityRecognizer = new i18n.EntityRecognizer("zh-CN");
567  let text1: string = "如有疑问,请联系158****2312";
568  let result1: Array<i18n.EntityInfoItem> = entityRecognizer.findEntityInfo(text1); // result1[0].type = "phone_number", result1[0].begin = 8, result1[0].end = 19
569  let text2: string = "我们2023年12月1日一起吃饭吧。";
570  let result2: Array<i18n.EntityInfoItem> = entityRecognizer.findEntityInfo(text2); // result2[0].type = "date", result2[0].begin = 2, result2[0].end = 12
571  ```
572
573## EntityInfoItem<sup>11+</sup>
574
575实体信息属性。
576
577**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
578
579**系统能力**:SystemCapability.Global.I18n
580
581| 名称  | 类型   | 可读   | 可写   | 说明                |
582| ---- | ---- | ---- | ---- | ----------------- |
583| type | string | 是    | 是    | 实体类型,当前支持phone_number和date类型。 |
584| begin | number | 是    | 是    | 实体的起始位置。 |
585| end | number | 是    | 是    | 实体的终止位置。 |
586
587## Calendar<sup>8+</sup>
588
589### setTime<sup>8+</sup>
590
591setTime(date: Date): void
592
593设置日历对象内部的时间、日期。
594
595**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
596
597**系统能力**:SystemCapability.Global.I18n
598
599**参数:**
600
601| 参数名  | 类型   | 必填   | 说明                |
602| ---- | ---- | ---- | ----------------- |
603| date | Date | 是    | 时间、日期。 |
604
605**示例:**
606  ```ts
607  let calendar: i18n.Calendar = i18n.getCalendar("en-US", "gregory");
608  let date: Date = new Date(2021, 10, 7, 8, 0, 0, 0);
609  calendar.setTime(date);
610  ```
611
612
613### setTime<sup>8+</sup>
614
615setTime(time: number): void
616
617设置日历对象内部的时间、日期。
618
619**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
620
621**系统能力**:SystemCapability.Global.I18n
622
623**参数:**
624
625| 参数名  | 类型     | 必填   | 说明                                       |
626| ---- | ------ | ---- | ---------------------------------------- |
627| time | number | 是    | time为从1970.1.1&nbsp;00:00:00&nbsp;GMT逝去的毫秒数。 |
628
629**示例:**
630  ```ts
631  let calendar: i18n.Calendar = i18n.getCalendar("en-US", "gregory");
632  calendar.setTime(10540800000);
633  ```
634
635### set<sup>8+</sup>
636
637set(year: number, month: number, date:number, hour?: number, minute?: number, second?: number): void
638
639设置日历对象的年、月、日、时、分、秒。
640
641**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
642
643**系统能力**:SystemCapability.Global.I18n
644
645**参数:**
646
647| 参数名    | 类型     | 必填   | 说明     |
648| ------ | ------ | ---- | ------ |
649| year   | number | 是    | 设置的年。  |
650| month  | number | 是    | 设置的月。  |
651| date   | number | 是    | 设置的日。  |
652| hour   | number | 否    | 设置的小时。默认值:系统小时。 |
653| minute | number | 否    | 设置的分钟。默认值:系统分钟。 |
654| second | number | 否    | 设置的秒。默认值:系统秒。 |
655
656**示例:**
657  ```ts
658  let calendar: i18n.Calendar = i18n.getCalendar("zh-Hans");
659  calendar.set(2021, 10, 1, 8, 0, 0); // set time to 2021.11.1 08:00:00
660  ```
661
662### setTimeZone<sup>8+</sup>
663
664setTimeZone(timezone: string): void
665
666设置日历对象的时区。
667
668**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
669
670**系统能力**:SystemCapability.Global.I18n
671
672**参数:**
673
674| 参数名      | 类型     | 必填   | 说明                        |
675| -------- | ------ | ---- | ------------------------- |
676| timezone | string | 是    | 合法的时区ID,如“Asia/Shanghai”。 |
677
678**示例:**
679  ```ts
680  let calendar: i18n.Calendar = i18n.getCalendar("zh-Hans");
681  calendar.setTimeZone("Asia/Shanghai");
682  ```
683
684
685### getTimeZone<sup>8+</sup>
686
687getTimeZone(): string
688
689获取日历对象的时区。
690
691**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
692
693**系统能力**:SystemCapability.Global.I18n
694
695**返回值:**
696
697| 类型     | 说明         |
698| ------ | ---------- |
699| string | 日历对象的时区ID。 |
700
701**示例:**
702  ```ts
703  let calendar: i18n.Calendar = i18n.getCalendar("zh-Hans");
704  calendar.setTimeZone("Asia/Shanghai");
705  let timezone: string = calendar.getTimeZone(); // timezone = "Asia/Shanghai"
706  ```
707
708
709### getFirstDayOfWeek<sup>8+</sup>
710
711getFirstDayOfWeek(): number
712
713获取日历对象一周的起始日。
714
715**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
716
717**系统能力**:SystemCapability.Global.I18n
718
719**返回值:**
720
721| 类型     | 说明                    |
722| ------ | --------------------- |
723| number | 一周的起始日,1代表周日,7代表周六。 |
724
725**示例:**
726  ```ts
727  let calendar: i18n.Calendar = i18n.getCalendar("en-US", "gregory");
728  let firstDayOfWeek: number = calendar.getFirstDayOfWeek(); // firstDayOfWeek = 1
729  ```
730
731
732### setFirstDayOfWeek<sup>8+</sup>
733
734setFirstDayOfWeek(value: number): void
735
736设置一周的起始日。
737
738**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
739
740**系统能力**:SystemCapability.Global.I18n
741
742**参数:**
743
744| 参数名   | 类型     | 必填   | 说明                    |
745| ----- | ------ | ---- | --------------------- |
746| value | number | 是    | 一周起始日,1代表周日,7代表周六。 |
747
748**示例:**
749  ```ts
750  let calendar: i18n.Calendar = i18n.getCalendar("zh-Hans");
751  calendar.setFirstDayOfWeek(3);
752  let firstDayOfWeek: number = calendar.getFirstDayOfWeek(); // firstDayOfWeek = 3
753  ```
754
755### getMinimalDaysInFirstWeek<sup>8+</sup>
756
757getMinimalDaysInFirstWeek(): number
758
759获取一年中第一周的最小天数。
760
761**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
762
763**系统能力**:SystemCapability.Global.I18n
764
765**返回值:**
766
767| 类型     | 说明           |
768| ------ | ------------ |
769| number | 一年中第一周的最小天数。 |
770
771**示例:**
772  ```ts
773  let calendar: i18n.Calendar = i18n.getCalendar("zh-Hans");
774  let minimalDaysInFirstWeek: number = calendar.getMinimalDaysInFirstWeek(); // minimalDaysInFirstWeek = 1
775  ```
776
777
778### setMinimalDaysInFirstWeek<sup>8+</sup>
779
780setMinimalDaysInFirstWeek(value: number): void
781
782设置一年中第一周的最小天数。
783
784**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
785
786**系统能力**:SystemCapability.Global.I18n
787
788**参数:**
789
790| 参数名   | 类型     | 必填   | 说明           |
791| ----- | ------ | ---- | ------------ |
792| value | number | 是    | 一年中第一周的最小天数。 |
793
794**示例:**
795  ```ts
796  let calendar: i18n.Calendar = i18n.getCalendar("zh-Hans");
797  calendar.setMinimalDaysInFirstWeek(3);
798  let minimalDaysInFirstWeek: number = calendar.getMinimalDaysInFirstWeek(); // minimalDaysInFirstWeek = 3
799  ```
800
801
802### get<sup>8+</sup>
803
804get(field: string): number
805
806获取日历对象与field相关联的值。
807
808**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
809
810**系统能力**:SystemCapability.Global.I18n
811
812**参数:**
813
814| 参数名   | 类型     | 必填   | 说明                                       |
815| ----- | ------ | ---- | ---------------------------------------- |
816| field | string | 是    | 通过field来获取日历对象相应的值,目前支持的field值请参考下表。 |
817
818
819| field名称   | 说明                                       |
820| ----- | ---------------------------------------- |
821| era | 纪元,例如公历中的公元前或者公元后 |
822| year | 年 |
823| month | 月 |
824| date | 日 |
825| hour | 挂钟小时数 |
826| hour_of_day | 一天中的第几小时 |
827| minute | 分 |
828| second | 秒 |
829| millisecond | 毫秒 |
830| week_of_year | 一年中的第几周,按照星期计算周,注意:第一周的归属算法各地有区别 |
831| year_woy | 一年中的第几周,按照数值计算周,例如一年中前1~7日属于第一周 |
832| week_of_month | 一个月中的第几周,按照星期计算周 |
833| day_of_week_in_month | 一月中的第几周,按照数值计算周,例如1-7日属于第一周 |
834| day_of_year | 一年中的第几天 |
835| day_of_week | 一周中的第几天(星期) |
836| milliseconds_in_day | 一天中的第几毫秒 |
837| zone_offset | 以毫秒计时的时区固定偏移量(不含夏令时) |
838| dst_offset | 以毫秒计时的夏令时偏移量 |
839| dow_local | 本地星期 |
840| extended_year | 扩展的年份数值,支持负数 |
841| julian_day | 儒略日,与当前时区相关 |
842| is_leap_month | 是否为闰月 |
843
844**返回值:**
845
846| 类型     | 说明                                       |
847| ------ | ---------------------------------------- |
848| number | 与field相关联的值,如当前Calendar对象的内部日期的年份为1990,get("year")返回1990。 |
849
850**示例:**
851  ```ts
852  let calendar: i18n.Calendar = i18n.getCalendar("zh-Hans");
853  calendar.set(2021, 10, 1, 8, 0, 0); // set time to 2021.11.1 08:00:00
854  let hourOfDay: number = calendar.get("hour_of_day"); // hourOfDay = 8
855  ```
856
857
858### getDisplayName<sup>8+</sup>
859
860getDisplayName(locale: string): string
861
862获取日历对象在某区域的名字。
863
864**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
865
866**系统能力**:SystemCapability.Global.I18n
867
868**参数:**
869
870| 参数名    | 类型     | 必填   | 说明                                       |
871| ------ | ------ | ---- | ---------------------------------------- |
872| locale | string | 是    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成。 |
873
874**返回值:**
875
876| 类型     | 说明                  |
877| ------ | ------------------- |
878| string | 日历在locale所指示区域的名字。如buddhist在en-US上显示的名称为“Buddhist&nbsp;Calendar”。|
879
880**示例:**
881  ```ts
882  let calendar: i18n.Calendar = i18n.getCalendar("en-US", "buddhist");
883  let calendarName: string = calendar.getDisplayName("zh"); // calendarName = "佛历"
884  ```
885
886
887### isWeekend<sup>8+</sup>
888
889isWeekend(date?: Date): boolean
890
891判断指定的日期在日历中是否为周末。
892
893**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
894
895**系统能力**:SystemCapability.Global.I18n
896
897**参数:**
898
899| 参数名  | 类型   | 必填   | 说明                                       |
900| ---- | ---- | ---- | ---------------------------------------- |
901| date | Date | 否    | 指定日期。<br>默认值:系统日期。若不填,则判断当前日期是否为周末。 |
902
903**返回值:**
904
905| 类型      | 说明                                  |
906| ------- | ----------------------------------- |
907| boolean | true表示指定的日期是周末,false表示指定的日期不是周末。 |
908
909**示例:**
910  ```ts
911  let calendar: i18n.Calendar = i18n.getCalendar("zh-Hans");
912  calendar.set(2021, 11, 11, 8, 0, 0); // set time to 2021.12.11 08:00:00
913  calendar.isWeekend(); // true
914  let date: Date = new Date(2011, 11, 6, 9, 0, 0);
915  calendar.isWeekend(date); // false
916  ```
917
918
919### add<sup>11+</sup>
920
921add(field: string, amount: number): void
922
923将日历中的某些字段进行加减操作。
924
925**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
926
927**系统能力**:SystemCapability.Global.I18n
928
929**参数:**
930
931| 参数名  | 类型   | 必填   | 说明                                       |
932| ---- | ---- | ---- | ---------------------------------------- |
933| field | string | 是    | 指定日历字段,目前支持的field值有&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)。 |
934| amount | number | 是    | 进行加减操作的具体数值。 |
935
936**错误码:**
937
938以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
939
940| 错误码ID  | 错误信息                   |
941| ------ | ---------------------- |
942| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
943| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
944
945**示例:**
946  ```ts
947  import { BusinessError } from '@kit.BasicServicesKit';
948
949  try {
950    let calendar: i18n.Calendar = i18n.getCalendar("zh-Hans");
951    calendar.set(2021, 11, 11, 8, 0, 0); // set time to 2021.12.11 08:00:00
952    calendar.add("year", 8); // 2021 + 8
953    let year: number = calendar.get("year"); // year = 2029
954  } catch(error) {
955    let err: BusinessError = error as BusinessError;
956    console.error(`call Calendar.add failed, error code: ${err.code}, message: ${err.message}.`);
957  }
958  ```
959
960
961### getTimeInMillis<sup>11+</sup>
962
963getTimeInMillis(): number
964
965获取当前日历的UTC毫秒数。
966
967**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
968
969**系统能力**:SystemCapability.Global.I18n
970
971**返回值:**
972
973| 类型      | 说明                                  |
974| ------- | ----------------------------------- |
975| number | 当前日历的UTC毫秒数。 |
976
977**示例:**
978  ```ts
979  let calendar: i18n.Calendar = i18n.getCalendar("zh-Hans");
980  calendar.setTime(5000);
981  let millisecond: number = calendar.getTimeInMillis(); // millisecond = 5000
982  ```
983
984
985### compareDays<sup>11+</sup>
986
987compareDays(date: Date): number
988
989比较日历和指定日期相差的天数。
990
991**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
992
993**系统能力**:SystemCapability.Global.I18n
994
995**参数:**
996
997| 参数名  | 类型   | 必填   | 说明                                       |
998| ---- | ---- | ---- | ---------------------------------------- |
999| date | Date | 是    | 指定日期。 |
1000
1001**返回值:**
1002
1003| 类型      | 说明                                  |
1004| ------- | ----------------------------------- |
1005| number | 相差的天数,正数代表日历时间更早,负数代表指定时间更早。<br>按毫秒级的精度,不足一天将按一天进行计算。 |
1006
1007**错误码:**
1008
1009以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1010
1011| 错误码ID  | 错误信息                   |
1012| ------ | ---------------------- |
1013| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
1014
1015**示例:**
1016  ```ts
1017  import { BusinessError } from '@kit.BasicServicesKit';
1018
1019  try {
1020    let calendar: i18n.Calendar = i18n.getCalendar("zh-Hans");
1021    calendar.setTime(5000);
1022    let date: Date = new Date(6000);
1023    let diff: number = calendar.compareDays(date); // diff = 1
1024  } catch(error) {
1025    let err: BusinessError = error as BusinessError;
1026    console.error(`call Calendar.compareDays failed, error code: ${err.code}, message: ${err.message}.`);
1027  }
1028  ```
1029
1030## PhoneNumberFormat<sup>8+</sup>
1031
1032
1033### constructor<sup>8+</sup>
1034
1035constructor(country: string, options?: PhoneNumberFormatOptions)
1036
1037创建电话号码格式化对象。
1038
1039**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1040
1041**系统能力**:SystemCapability.Global.I18n
1042
1043**参数:**
1044
1045| 参数名     | 类型                                       | 必填   | 说明               |
1046| ------- | ---------------------------------------- | ---- | ---------------- |
1047| country | string                                   | 是    | 表示电话号码所属国家或地区代码。 |
1048| options | [PhoneNumberFormatOptions](#phonenumberformatoptions8) | 否    | 电话号码格式化时设置的配置项。默认值:NATIONAL。  |
1049
1050**示例:**
1051  ```ts
1052  let option: i18n.PhoneNumberFormatOptions = {type: "E164"};
1053  let phoneNumberFormat: i18n.PhoneNumberFormat = new i18n.PhoneNumberFormat("CN", option);
1054  ```
1055
1056### isValidNumber<sup>8+</sup>
1057
1058isValidNumber(number: string): boolean
1059
1060判断传入的电话号码格式是否正确。
1061
1062**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1063
1064**系统能力**:SystemCapability.Global.I18n
1065
1066**参数:**
1067
1068| 参数名    | 类型     | 必填   | 说明        |
1069| ------ | ------ | ---- | --------- |
1070| number | string | 是    | 待判断的电话号码。 |
1071
1072**返回值:**
1073
1074| 类型      | 说明                                    |
1075| ------- | ------------------------------------- |
1076| boolean | 返回true表示电话号码的格式正确,返回false表示电话号码的格式错误。 |
1077
1078**示例:**
1079  ```ts
1080  let phonenumberfmt: i18n.PhoneNumberFormat = new i18n.PhoneNumberFormat("CN");
1081  let isValidNumber: boolean = phonenumberfmt.isValidNumber("158****2312"); // isValidNumber = true
1082  ```
1083
1084
1085### format<sup>8+</sup>
1086
1087format(number: string): string
1088
1089对电话号码进行格式化。
1090
1091> **说明**
1092> 从API version 12开始,支持对拨号中的号码进行格式化。
1093
1094**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1095
1096**系统能力**:SystemCapability.Global.I18n
1097
1098**参数:**
1099
1100| 参数名    | 类型     | 必填   | 说明         |
1101| ------ | ------ | ---- | ---------- |
1102| number | string | 是    | 待格式化的电话号码。 |
1103
1104**返回值:**
1105
1106| 类型     | 说明         |
1107| ------ | ---------- |
1108| string | 格式化后的电话号码。 |
1109
1110**示例:**
1111  ```ts
1112  let phonenumberfmt: i18n.PhoneNumberFormat = new i18n.PhoneNumberFormat("CN");
1113  let formattedPhoneNumber: string = phonenumberfmt.format("158****2312"); // formattedPhoneNumber = "158 **** 2312"
1114
1115  // 拨号中的号码格式化
1116  let option: i18n.PhoneNumberFormatOptions = {type: "TYPING"};
1117  let phoneNumberFmt: i18n.PhoneNumberFormat = new i18n.PhoneNumberFormat("CN", option);
1118  let phoneNumber : string = "130493";
1119  let formatResult : string = "";
1120  for (let i = 0; i < phoneNumber.length; i++) {
1121    formatResult += phoneNumber.charAt(i);
1122    formatResult = phoneNumberFmt.format(formatResult);
1123  }
1124  console.log(formatResult); // formatResult: 130 493
1125  ```
1126
1127### getLocationName<sup>9+</sup>
1128
1129getLocationName(number: string, locale: string): string
1130
1131判断电话号码归属地。
1132
1133**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1134
1135**系统能力**:SystemCapability.Global.I18n
1136
1137**参数:**
1138
1139| 参数名    | 类型     | 必填   | 说明   |
1140| ------ | ------ | ---- | ---- |
1141| number | string | 是    | 电话号码。获取其他地区号码的归属地时,需要在号码前加00+国际区号。 |
1142| locale | string | 是    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成。 |
1143
1144**返回值:**
1145
1146| 类型     | 说明       |
1147| ------ | -------- |
1148| string | 电话号码归属地。 |
1149
1150**示例:**
1151  ```ts
1152  let phonenumberfmt: i18n.PhoneNumberFormat = new i18n.PhoneNumberFormat("CN");
1153  let locationName: string = phonenumberfmt.getLocationName("158****2345", "zh-CN"); // locationName = "广东省湛江市"
1154  let locName: string = phonenumberfmt.getLocationName("0039312****789", "zh-CN"); // locName = "意大利"
1155  ```
1156
1157
1158## PhoneNumberFormatOptions<sup>8+</sup>
1159
1160电话号码格式化时可设置的配置项。
1161
1162**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1163
1164**系统能力**:SystemCapability.Global.I18n
1165
1166| 名称   | 类型     | 可读   | 可写   | 说明                                       |
1167| ---- | ------ | ---- | ---- | ---------------------------------------- |
1168| 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,表示对拨号中的号码格式化。|
1169
1170
1171## UnitInfo<sup>8+</sup>
1172
1173度量衡单位信息。
1174
1175**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1176
1177**系统能力**:SystemCapability.Global.I18n
1178
1179| 名称            | 类型     | 可读   | 可写   | 说明                                       |
1180| ------------- | ------ | ---- | ---- | ---------------------------------------- |
1181| unit          | string | 是    | 是    | 单位的名称,如:"meter",&nbsp;"inch",&nbsp;"cup"等。 |
1182| measureSystem | string | 是    | 是    | 单位的度量体系,取值包括:"SI",&nbsp;"US",&nbsp;"UK"。 |
1183
1184
1185## getInstance<sup>8+</sup>
1186
1187getInstance(locale?:string): IndexUtil
1188
1189创建并返回IndexUtil对象。
1190
1191**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1192
1193**系统能力**:SystemCapability.Global.I18n
1194
1195**参数:**
1196
1197| 参数名    | 类型     | 必填   | 说明                           |
1198| ------ | ------ | ---- | ---------------------------- |
1199| locale | string | 否    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成。<br>默认值:系统Locale。 |
1200
1201**返回值:**
1202
1203| 类型                       | 说明                    |
1204| ------------------------ | --------------------- |
1205| [IndexUtil](#indexutil8) | locale对应的IndexUtil对象。 |
1206
1207**示例:**
1208  ```ts
1209  let indexUtil: i18n.IndexUtil = i18n.getInstance("zh-CN");
1210  ```
1211
1212
1213## IndexUtil<sup>8+</sup>
1214
1215**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1216
1217### getIndexList<sup>8+</sup>
1218
1219getIndexList(): Array&lt;string&gt;
1220
1221获取当前区域的索引列表。
1222
1223**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1224
1225**系统能力**:SystemCapability.Global.I18n
1226
1227**返回值:**
1228
1229| 类型                  | 说明                 |
1230| ------------------- | ------------------ |
1231| Array&lt;string&gt; | 返回当前区域的索引列表。 |
1232
1233**示例:**
1234  ```ts
1235  let indexUtil: i18n.IndexUtil = i18n.getInstance("zh-CN");
1236  // indexList = [ "...", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
1237  //              "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "..." ]
1238  let indexList: Array<string> = indexUtil.getIndexList();
1239  ```
1240
1241
1242### addLocale<sup>8+</sup>
1243
1244addLocale(locale: string): void
1245
1246在当前区域的索引列表中,添加新区域的索引列表,形成复合列表。
1247
1248**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1249
1250**系统能力**:SystemCapability.Global.I18n
1251
1252**参数:**
1253
1254| 参数名    | 类型     | 必填   | 说明                           |
1255| ------ | ------ | ---- | ---------------------------- |
1256| locale | string | 是    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成。 |
1257
1258**示例:**
1259  ```ts
1260  let indexUtil: i18n.IndexUtil = i18n.getInstance("zh-CN");
1261  indexUtil.addLocale("en-US");
1262  ```
1263
1264### getIndex<sup>8+</sup>
1265
1266getIndex(text: string): string
1267
1268获取text对应的索引。
1269
1270**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1271
1272**系统能力**:SystemCapability.Global.I18n
1273
1274**参数:**
1275
1276| 参数名  | 类型     | 必填   | 说明           |
1277| ---- | ------ | ---- | ------------ |
1278| text | string | 是    | 待计算索引值的输入文本。 |
1279
1280**返回值:**
1281
1282| 类型     | 说明          |
1283| ------ | ----------- |
1284| string | 输入文本对应的索引值。 |
1285
1286**示例:**
1287  ```ts
1288  let indexUtil: i18n.IndexUtil = i18n.getInstance("zh-CN");
1289  let index: string = indexUtil.getIndex("hi");  // index = "H"
1290  ```
1291
1292
1293## i18n.getLineInstance<sup>8+</sup>
1294
1295getLineInstance(locale: string): BreakIterator
1296
1297获取一个用于断句的[BreakIterator](#breakiterator8)对象。
1298
1299**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1300
1301**系统能力**:SystemCapability.Global.I18n
1302
1303**参数:**
1304
1305| 参数名    | 类型     | 必填   | 说明                                       |
1306| ------ | ------ | ---- | ---------------------------------------- |
1307| locale | string | 是    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成。<br>生成的[BreakIterator](#breakiterator8)将按照locale所指定的区域规则进行断句。 |
1308
1309**返回值:**
1310
1311| 类型                               | 说明          |
1312| -------------------------------- | ----------- |
1313| [BreakIterator](#breakiterator8) | 断句处理器。 |
1314
1315**示例:**
1316  ```ts
1317  let iterator: i18n.BreakIterator = i18n.getLineInstance("en");
1318  ```
1319
1320
1321## BreakIterator<sup>8+</sup>
1322
1323
1324### setLineBreakText<sup>8+</sup>
1325
1326setLineBreakText(text: string): void
1327
1328设置BreakIterator要处理的文本。
1329
1330**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1331
1332**系统能力**:SystemCapability.Global.I18n
1333
1334**参数:**
1335
1336| 参数名  | 类型     | 必填   | 说明                      |
1337| ---- | ------ | ---- | ----------------------- |
1338| text | string | 是    | 指定BreakIterator进行断句的文本。 |
1339
1340**示例:**
1341  ```ts
1342  let iterator: i18n.BreakIterator = i18n.getLineInstance("en");
1343  iterator.setLineBreakText("Apple is my favorite fruit."); // 设置短句文本
1344  ```
1345
1346
1347### getLineBreakText<sup>8+</sup>
1348
1349getLineBreakText(): string
1350
1351获取BreakIterator当前处理的文本。
1352
1353**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1354
1355**系统能力**:SystemCapability.Global.I18n
1356
1357**返回值:**
1358
1359| 类型     | 说明                     |
1360| ------ | ---------------------- |
1361| string | BreakIterator对象正在处理的文本。 |
1362
1363**示例:**
1364  ```ts
1365  let iterator: i18n.BreakIterator = i18n.getLineInstance("en");
1366  iterator.setLineBreakText("Apple is my favorite fruit.");
1367  let breakText: string = iterator.getLineBreakText(); // breakText = "Apple is my favorite fruit."
1368  ```
1369
1370
1371### current<sup>8+</sup>
1372
1373current(): number
1374
1375获取BreakIterator对象在处理文本中的位置。
1376
1377**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1378
1379**系统能力**:SystemCapability.Global.I18n
1380
1381**返回值:**
1382
1383| 类型     | 说明                          |
1384| ------ | --------------------------- |
1385| number | BreakIterator在当前所处理的文本中的位置。 |
1386
1387**示例:**
1388  ```ts
1389  let iterator: i18n.BreakIterator = i18n.getLineInstance("en");
1390  iterator.setLineBreakText("Apple is my favorite fruit.");
1391  let currentPos: number = iterator.current(); // currentPos = 0
1392  ```
1393
1394
1395### first<sup>8+</sup>
1396
1397first(): number
1398
1399将BreakIterator移动到第一个可断句的分割点。第一个分割点总是在被处理文本的起始位置。
1400
1401**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1402
1403**系统能力**:SystemCapability.Global.I18n
1404
1405**返回值:**
1406
1407| 类型     | 说明                |
1408| ------ | ----------------- |
1409| number | 被处理文本的第一个分割点的偏移量。 |
1410
1411**示例:**
1412  ```ts
1413  let iterator: i18n.BreakIterator = i18n.getLineInstance("en");
1414  iterator.setLineBreakText("Apple is my favorite fruit.");
1415  let firstPos: number = iterator.first(); // firstPos = 0
1416  ```
1417
1418
1419### last<sup>8+</sup>
1420
1421last(): number
1422
1423将BreakIterator移动到最后一个可断句的分割点。最后一个分割点总是在被处理文本末尾的下一个位置。
1424
1425**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1426
1427**系统能力**:SystemCapability.Global.I18n
1428
1429**返回值:**
1430
1431| 类型     | 说明                 |
1432| ------ | ------------------ |
1433| number | 被处理文本的最后一个分割点的偏移量。 |
1434
1435**示例:**
1436  ```ts
1437  let iterator: i18n.BreakIterator = i18n.getLineInstance("en");
1438  iterator.setLineBreakText("Apple is my favorite fruit.");
1439  let lastPos: number = iterator.last(); // lastPos = 27
1440  ```
1441
1442
1443### next<sup>8+</sup>
1444
1445next(index?: number): number
1446
1447将BreakIterator向后移动相应个分割点。
1448
1449**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1450
1451**系统能力**:SystemCapability.Global.I18n
1452
1453**参数:**
1454
1455| 参数名   | 类型     | 必填   | 说明                                       |
1456| ----- | ------ | ---- | ---------------------------------------- |
1457| index | number | 否    | BreakIterator将要移动的分割点数。<br>正数代表向后移动,即将BreakIterator向后移动number个可断句的分割点;负数代表向前移动,即向前移动相应个分割点。<br>默认值:1。 |
1458
1459**返回值:**
1460
1461| 类型     | 说明                                       |
1462| ------ | ---------------------------------------- |
1463| number | 移动了index个分割点后,当前BreakIterator在文本中的位置。<br>若移动index个分割点后超出了所处理的文本的长度范围,返回-1。 |
1464
1465**示例:**
1466  ```ts
1467  let iterator: i18n.BreakIterator = i18n.getLineInstance("en");
1468  iterator.setLineBreakText("Apple is my favorite fruit.");
1469  let pos: number = iterator.first(); // pos = 0
1470  pos = iterator.next(); // pos = 6
1471  pos = iterator.next(10); // pos = -1
1472  ```
1473
1474
1475### previous<sup>8+</sup>
1476
1477previous(): number
1478
1479将BreakIterator向前移动一个分割点。
1480
1481**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1482
1483**系统能力**:SystemCapability.Global.I18n
1484
1485**返回值:**
1486
1487| 类型     | 说明                                       |
1488| ------ | ---------------------------------------- |
1489| number | 移动到前一个分割点后,当前BreakIterator在文本中的位置。<br>若移动index个分割点后超出了所处理的文本的长度范围,返回-1。 |
1490
1491**示例:**
1492  ```ts
1493  let iterator: i18n.BreakIterator = i18n.getLineInstance("en");
1494  iterator.setLineBreakText("Apple is my favorite fruit.");
1495  let pos: number = iterator.first(); // pos = 0
1496  pos = iterator.next(3); // pos = 12
1497  pos = iterator.previous(); // pos = 9
1498  ```
1499
1500
1501### following<sup>8+</sup>
1502
1503following(offset: number): number
1504
1505将BreakIterator移动到指定位置后面一个分割点。
1506
1507**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1508
1509**系统能力**:SystemCapability.Global.I18n
1510
1511**参数:**
1512
1513| 参数名    | 类型     | 必填   | 说明                                       |
1514| ------ | ------ | ---- | ---------------------------------------- |
1515| offset | number | 是    | 将BreakIterator移动到指定位置的后面一个分割点。 |
1516
1517**返回值:**
1518
1519| 类型     | 说明                                       |
1520| ------ | ---------------------------------------- |
1521| number | BreakIterator移动后的位置。若offset所指定位置的下一个分割点超出了文本的范围,则返回-1。 |
1522
1523**示例:**
1524  ```ts
1525  let iterator: i18n.BreakIterator = i18n.getLineInstance("en");
1526  iterator.setLineBreakText("Apple is my favorite fruit.");
1527  let pos: number = iterator.following(0); // pos = 6
1528  pos = iterator.following(100); // pos = -1
1529  pos = iterator.current(); // pos = 27
1530  ```
1531
1532
1533### isBoundary<sup>8+</sup>
1534
1535isBoundary(offset: number): boolean
1536
1537判断指定位置是否为分割点。
1538
1539**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1540
1541**系统能力**:SystemCapability.Global.I18n
1542
1543**参数:**
1544
1545| 参数名    | 类型     | 必填   | 说明          |
1546| ------ | ------ | ---- | ----------- |
1547| offset | number | 是    | 指定位置。 |
1548
1549**返回值:**
1550
1551| 类型      | 说明                              |
1552| ------- | ------------------------------- |
1553| boolean | 若offset指定的文本位置是一个分割点,则返回true,否则返回false。<br>返回true时,会将BreakIterator对象移动到offset指定的位置,否则相当于调用following。 |
1554
1555**示例:**
1556  ```ts
1557  let iterator: i18n.BreakIterator = i18n.getLineInstance("en");
1558  iterator.setLineBreakText("Apple is my favorite fruit.");
1559  let isBoundary: boolean = iterator.isBoundary(0); // isBoundary = true;
1560  isBoundary = iterator.isBoundary(5); // isBoundary = false;
1561  ```
1562
1563
1564## i18n.getTimeZone
1565
1566getTimeZone(zoneID?: string): TimeZone
1567
1568获取时区ID对应的时区对象。
1569
1570**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1571
1572**系统能力**:SystemCapability.Global.I18n
1573
1574**参数:**
1575
1576| 参数名    | 类型     | 必填   | 说明    |
1577| ------ | ------ | ---- | ----- |
1578| zoneID | string | 否    | 时区ID。默认值:系统时区。 |
1579
1580**返回值:**
1581
1582| 类型       | 说明           |
1583| -------- | ------------ |
1584| [TimeZone](#timezone) | 时区ID对应的时区对象。 |
1585
1586**示例:**
1587  ```ts
1588  let timezone: i18n.TimeZone = i18n.getTimeZone();
1589  ```
1590
1591## TimeZone
1592
1593### getID
1594
1595getID(): string
1596
1597获取时区对象的ID。
1598
1599**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1600
1601**系统能力**:SystemCapability.Global.I18n
1602
1603**返回值:**
1604
1605| 类型     | 说明           |
1606| ------ | ------------ |
1607| string | 时区对象对应的时区ID。 |
1608
1609**示例:**
1610  ```ts
1611  let timezone: i18n.TimeZone = i18n.getTimeZone();
1612  let timezoneID: string = timezone.getID(); // timezoneID = "Asia/Shanghai"
1613  ```
1614
1615
1616### getDisplayName
1617
1618getDisplayName(locale?: string, isDST?: boolean): string
1619
1620获取时区对象的本地化表示。
1621
1622**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1623
1624**系统能力**:SystemCapability.Global.I18n
1625
1626**参数:**
1627
1628| 参数名    | 类型      | 必填   | 说明                   |
1629| ------ | ------- | ---- | -------------------- |
1630| locale | string  | 否    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成。默认值:系统Locale。                |
1631| isDST  | boolean | 否    | 时区对象本地化时是否考虑夏令时。默认值:false。 |
1632
1633**返回值:**
1634
1635| 类型     | 说明            |
1636| ------ | ------------- |
1637| string | 时区对象在指定区域的本地化表示。 |
1638
1639**示例:**
1640  ```ts
1641  let timezone: i18n.TimeZone = i18n.getTimeZone();
1642  let timezoneName: string = timezone.getDisplayName("zh-CN", false); // timezoneName = "中国标准时间"
1643  ```
1644
1645
1646### getRawOffset
1647
1648getRawOffset(): number
1649
1650获取时区对象表示的时区与UTC时区的偏差。
1651
1652**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1653
1654**系统能力**:SystemCapability.Global.I18n
1655
1656**返回值:**
1657
1658| 类型     | 说明                  |
1659| ------ | ------------------- |
1660| number | 时区对象表示的时区与UTC时区的偏差,单位是毫秒。 |
1661
1662**示例:**
1663  ```ts
1664  let timezone: i18n.TimeZone = i18n.getTimeZone();
1665  let offset: number = timezone.getRawOffset(); // offset = 28800000
1666  ```
1667
1668
1669### getOffset
1670
1671getOffset(date?: number): number
1672
1673获取某一时刻时区对象表示的时区与UTC时区的偏差。
1674
1675**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1676
1677**系统能力**:SystemCapability.Global.I18n
1678
1679**参数:**
1680
1681| 参数名    | 类型     | 必填   | 说明     |
1682| ------ | ------ | ---- | ------ |
1683| date | number | 否    | 待计算偏差的时刻,单位是毫秒。默认值:系统时间。 |
1684
1685**返回值:**
1686
1687| 类型     | 说明                      |
1688| ------ | ----------------------- |
1689| number | 某一时刻时区对象表示的时区与UTC时区的偏差。 |
1690
1691**示例:**
1692  ```ts
1693  let timezone: i18n.TimeZone = i18n.getTimeZone();
1694  let offset: number = timezone.getOffset(1234567890); // offset = 28800000
1695  ```
1696
1697
1698### getAvailableIDs<sup>9+</sup>
1699
1700static getAvailableIDs(): Array&lt;string&gt;
1701
1702获取系统支持的时区ID。
1703
1704**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1705
1706**系统能力**:SystemCapability.Global.I18n
1707
1708**返回值:**
1709
1710| 类型                  | 说明          |
1711| ------------------- | ----------- |
1712| Array&lt;string&gt; | 系统支持的时区ID列表。 |
1713
1714**示例:**
1715  ```ts
1716  // 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"]
1717  let ids: Array<string> = i18n.TimeZone.getAvailableIDs();
1718  ```
1719
1720
1721### getAvailableZoneCityIDs<sup>9+</sup>
1722
1723static getAvailableZoneCityIDs(): Array&lt;string&gt;
1724
1725获取系统支持的时区城市ID。
1726
1727**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1728
1729**系统能力**:SystemCapability.Global.I18n
1730
1731**返回值:**
1732
1733| 类型                  | 说明            |
1734| ------------------- | ------------- |
1735| Array&lt;string&gt; | 系统支持的时区城市ID列表。 |
1736
1737**示例:**
1738  ```ts
1739  // 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"]
1740  let cityIDs: Array<string> = i18n.TimeZone.getAvailableZoneCityIDs();
1741  ```
1742
1743### getCityDisplayName<sup>9+</sup>
1744
1745static getCityDisplayName(cityID: string, locale: string): string
1746
1747获取某时区城市在该区域的本地化显示。
1748
1749**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1750
1751**系统能力**:SystemCapability.Global.I18n
1752
1753**参数:**
1754
1755| 参数名    | 类型     | 必填   | 说明     |
1756| ------ | ------ | ---- | ------ |
1757| cityID | string | 是    | 时区城市ID。 |
1758| locale | string | 是    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成。  |
1759
1760**返回值:**
1761
1762| 类型     | 说明                 |
1763| ------ | ------------------ |
1764| string | 时区城市在某区域的本地化显示。 |
1765
1766**示例:**
1767  ```ts
1768  let displayName: string = i18n.TimeZone.getCityDisplayName("Shanghai", "zh-CN"); // displayName = "上海 (中国)"
1769  ```
1770
1771
1772### getTimezoneFromCity<sup>9+</sup>
1773
1774static getTimezoneFromCity(cityID: string): TimeZone
1775
1776创建某时区城市对应的时区对象。
1777
1778**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1779
1780**系统能力**:SystemCapability.Global.I18n
1781
1782**参数:**
1783
1784| 参数名    | 类型     | 必填   | 说明     |
1785| ------ | ------ | ---- | ------ |
1786| cityID | string | 是    | 时区城市ID。 |
1787
1788**返回值:**
1789
1790| 类型       | 说明          |
1791| -------- | ----------- |
1792| TimeZone | 时区城市对应的时区对象。 |
1793
1794**示例:**
1795  ```ts
1796  let timezone: i18n.TimeZone = i18n.TimeZone.getTimezoneFromCity("Shanghai");
1797  ```
1798
1799### getTimezonesByLocation<sup>10+</sup>
1800
1801static getTimezonesByLocation(longitude: number, latitude: number): Array&lt;TimeZone&gt;
1802
1803创建某经纬度对应的时区对象数组。
1804
1805**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1806
1807**系统能力**:SystemCapability.Global.I18n
1808
1809**参数:**
1810
1811| 参数名     | 类型     | 必填   | 说明     |
1812| --------- | ------ | ---- | ------ |
1813| longitude | number | 是    | 经度, 范围[-180, 179.9), 东经取正值, 西经取负值。 |
1814| latitude  | number | 是    | 纬度, 范围[-90, 89.9), 北纬取正值, 南纬取负值。 |
1815
1816**返回值:**
1817
1818| 类型       | 说明          |
1819| -------- | ----------- |
1820| Array&lt;[TimeZone](#timezone)&gt; | 时区对象数组。 |
1821
1822**错误码:**
1823
1824以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
1825
1826| 错误码ID  | 错误信息                   |
1827| ------ | ---------------------- |
1828| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
1829| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
1830
1831
1832> **说明**
1833>
1834> 890001的报错信息请以接口的实际报错为准。
1835
1836**示例:**
1837  ```ts
1838  let timezoneArray: Array<i18n.TimeZone> = i18n.TimeZone.getTimezonesByLocation(-118.1, 34.0);
1839  for (let i = 0; i < timezoneArray.length; i++) {
1840      let tzId: string = timezoneArray[i].getID();
1841  }
1842  ```
1843
1844
1845## Transliterator<sup>9+</sup>
1846
1847
1848### getAvailableIDs<sup>9+</sup>
1849
1850static getAvailableIDs(): string[]
1851
1852获取音译支持的ID列表。
1853
1854**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1855
1856**系统能力**:SystemCapability.Global.I18n
1857
1858**返回值:**
1859
1860| 类型       | 说明         |
1861| -------- | ---------- |
1862| string[] | 音译支持的ID列表。 |
1863
1864**示例:**
1865  ```ts
1866  // ids共支持742个。每一个id由使用中划线分割的两部分组成,格式为 source-destination。例如ids = ["Han-Latin","Latin-ASCII", "Amharic-Latin/BGN","Accents-Any", ...],Han-Latin表示汉语转为译拉丁文,Amharic-Latin表示阿姆哈拉语转为拉丁文。
1867  // 更多使用信息可以参考ISO-15924。
1868  let ids: string[] = i18n.Transliterator.getAvailableIDs();
1869  ```
1870
1871
1872### getInstance<sup>9+</sup>
1873
1874static getInstance(id: string): Transliterator
1875
1876创建音译对象。
1877
1878**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1879
1880**系统能力**:SystemCapability.Global.I18n
1881
1882**参数:**
1883
1884| 参数名  | 类型     | 必填   | 说明       |
1885| ---- | ------ | ---- | -------- |
1886| id   | string | 是    | 音译支持的ID。 |
1887
1888**返回值:**
1889
1890| 类型                                 | 说明    |
1891| ---------------------------------- | ----- |
1892| [Transliterator](#transliterator9) | 音译对象。 |
1893
1894**示例:**
1895  ```ts
1896  let transliterator: i18n.Transliterator = i18n.Transliterator.getInstance("Any-Latn");
1897  ```
1898
1899
1900### transform<sup>9+</sup>
1901
1902transform(text: string): string
1903
1904将输入字符串从源格式转换为目标格式。
1905
1906**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1907
1908**系统能力**:SystemCapability.Global.I18n
1909
1910**参数:**
1911
1912| 参数名  | 类型     | 必填   | 说明     |
1913| ---- | ------ | ---- | ------ |
1914| text | string | 是    | 输入字符串。 |
1915
1916**返回值:**
1917
1918| 类型     | 说明       |
1919| ------ | -------- |
1920| string | 转换后的字符串。 |
1921
1922**示例:**
1923  ```ts
1924  let transliterator: i18n.Transliterator = i18n.Transliterator.getInstance("Any-Latn");
1925  let wordArray = ["中国", "德国", "美国", "法国"]
1926  for (let i = 0; i < wordArray.length; i++) {
1927      let res = transliterator.transform(wordArray[i]); // res: zhōng guó, dé guó, měi guó, fǎ guó
1928  }
1929
1930  // 汉语音译去声调
1931  let transliter = i18n.Transliterator.getInstance('Any-Latn;Latin-Ascii');
1932  let result = transliter.transform('中国'); // result: zhong guo
1933
1934  // 汉语姓氏读音
1935  let nameTransliter = i18n.Transliterator.getInstance('Han-Latin/Names');
1936  let result1 = nameTransliter.transform('单老师'); // result1: shàn lǎo shī
1937  let result2 = nameTransliter.transform('长孙无忌'); // result2: zhǎng sūn wú jì
1938  ```
1939
1940
1941## Unicode<sup>9+</sup>
1942
1943**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1944
1945### isDigit<sup>9+</sup>
1946
1947static isDigit(char: string): boolean
1948
1949判断字符串char是否是数字。
1950
1951**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1952
1953**系统能力**:SystemCapability.Global.I18n
1954
1955**参数:**
1956
1957| 参数名  | 类型     | 必填   | 说明    |
1958| ---- | ------ | ---- | ----- |
1959| char | string | 是    | 输入字符串。 |
1960
1961**返回值:**
1962
1963| 类型      | 说明                                   |
1964| ------- | ------------------------------------ |
1965| boolean | 返回true表示输入的字符是数字,返回false表示输入的字符不是数字。 |
1966
1967**示例:**
1968  ```ts
1969  let isdigit: boolean = i18n.Unicode.isDigit("1");  // isdigit = true
1970  ```
1971
1972
1973### isSpaceChar<sup>9+</sup>
1974
1975static isSpaceChar(char: string): boolean
1976
1977判断字符串char是否是空格符。
1978
1979**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
1980
1981**系统能力**:SystemCapability.Global.I18n
1982
1983**参数:**
1984
1985| 参数名  | 类型     | 必填   | 说明    |
1986| ---- | ------ | ---- | ----- |
1987| char | string | 是    | 输入字符串。 |
1988
1989**返回值:**
1990
1991| 类型      | 说明                                     |
1992| ------- | -------------------------------------- |
1993| boolean | 返回true表示输入的字符是空格符,返回false表示输入的字符不是空格符。 |
1994
1995**示例:**
1996  ```ts
1997  let isspacechar: boolean = i18n.Unicode.isSpaceChar("a");  // isspacechar = false
1998  ```
1999
2000
2001### isWhitespace<sup>9+</sup>
2002
2003static isWhitespace(char: string): boolean
2004
2005判断字符串char是否是空白符。
2006
2007**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2008
2009**系统能力**:SystemCapability.Global.I18n
2010
2011**参数:**
2012
2013| 参数名  | 类型     | 必填   | 说明    |
2014| ---- | ------ | ---- | ----- |
2015| char | string | 是    | 字符串。 |
2016
2017**返回值:**
2018
2019| 类型      | 说明                                     |
2020| ------- | -------------------------------------- |
2021| boolean | 返回true表示输入的字符是空白符,返回false表示输入的字符不是空白符。 |
2022
2023**示例:**
2024  ```ts
2025  let iswhitespace: boolean = i18n.Unicode.isWhitespace("a");  // iswhitespace = false
2026  ```
2027
2028
2029### isRTL<sup>9+</sup>
2030
2031static isRTL(char: string): boolean
2032
2033判断字符串char是否是从右到左语言的字符。
2034
2035**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2036
2037**系统能力**:SystemCapability.Global.I18n
2038
2039**参数:**
2040
2041| 参数名  | 类型     | 必填   | 说明    |
2042| ---- | ------ | ---- | ----- |
2043| char | string | 是    | 输入字符。 |
2044
2045**返回值:**
2046
2047| 类型      | 说明                                       |
2048| ------- | ---------------------------------------- |
2049| boolean | 返回true表示输入的字符是从右到左语言的字符,返回false表示输入的字符不是从右到左语言的字符。 |
2050
2051**示例:**
2052  ```ts
2053  let isrtl: boolean = i18n.Unicode.isRTL("a");  // isrtl = false
2054  ```
2055
2056
2057### isIdeograph<sup>9+</sup>
2058
2059static isIdeograph(char: string): boolean
2060
2061判断字符串char是否是表意文字。
2062
2063**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2064
2065**系统能力**:SystemCapability.Global.I18n
2066
2067**参数:**
2068
2069| 参数名  | 类型     | 必填   | 说明    |
2070| ---- | ------ | ---- | ----- |
2071| char | string | 是    | 输入字符。 |
2072
2073**返回值:**
2074
2075| 类型      | 说明                                       |
2076| ------- | ---------------------------------------- |
2077| boolean | 返回true表示输入的字符是表意文字,返回false表示输入的字符不是表意文字。 |
2078
2079**示例:**
2080  ```ts
2081  let isideograph: boolean = i18n.Unicode.isIdeograph("a");  // isideograph = false
2082  ```
2083
2084
2085### isLetter<sup>9+</sup>
2086
2087static isLetter(char: string): boolean
2088
2089判断字符串char是否是字母。
2090
2091**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2092
2093**系统能力**:SystemCapability.Global.I18n
2094
2095**参数:**
2096
2097| 参数名  | 类型     | 必填   | 说明    |
2098| ---- | ------ | ---- | ----- |
2099| char | string | 是    | 输入字符。 |
2100
2101**返回值:**
2102
2103| 类型      | 说明                                   |
2104| ------- | ------------------------------------ |
2105| boolean | 返回true表示输入的字符是字母,返回false表示输入的字符不是字母。 |
2106
2107**示例:**
2108  ```ts
2109  let isletter: boolean = i18n.Unicode.isLetter("a");  // isletter = true
2110  ```
2111
2112
2113### isLowerCase<sup>9+</sup>
2114
2115static isLowerCase(char: string): boolean
2116
2117判断字符串char是否是小写字母。
2118
2119**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2120
2121**系统能力**:SystemCapability.Global.I18n
2122
2123**参数:**
2124
2125| 参数名  | 类型     | 必填   | 说明    |
2126| ---- | ------ | ---- | ----- |
2127| char | string | 是    | 输入字符。 |
2128
2129**返回值:**
2130
2131| 类型      | 说明                                       |
2132| ------- | ---------------------------------------- |
2133| boolean | 返回true表示输入的字符是小写字母,返回false表示输入的字符不是小写字母。 |
2134
2135**示例:**
2136  ```ts
2137  let islowercase: boolean = i18n.Unicode.isLowerCase("a");  // islowercase = true
2138  ```
2139
2140
2141### isUpperCase<sup>9+</sup>
2142
2143static isUpperCase(char: string): boolean
2144
2145判断字符串char是否是大写字母。
2146
2147**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2148
2149**系统能力**:SystemCapability.Global.I18n
2150
2151**参数:**
2152
2153| 参数名  | 类型     | 必填   | 说明    |
2154| ---- | ------ | ---- | ----- |
2155| char | string | 是    | 输入字符。 |
2156
2157**返回值:**
2158
2159| 类型      | 说明                                       |
2160| ------- | ---------------------------------------- |
2161| boolean | 返回true表示输入的字符是大写字母,返回false表示输入的字符不是大写字母。 |
2162
2163**示例:**
2164  ```ts
2165  let isuppercase: boolean = i18n.Unicode.isUpperCase("a");  // isuppercase = false
2166  ```
2167
2168
2169### getType<sup>9+</sup>
2170
2171static getType(char: string): string
2172
2173获取输入字符串的一般类别值。
2174
2175**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2176
2177**系统能力**:SystemCapability.Global.I18n
2178
2179**参数:**
2180
2181| 参数名  | 类型     | 必填   | 说明    |
2182| ---- | ------ | ---- | ----- |
2183| char | string | 是    | 输入字符。 |
2184
2185**返回值:**
2186
2187| 类型     | 说明          |
2188| ------ | ----------- |
2189| string | 输入字符的一般类别值。|
2190
2191一般类别值如下,更详细的介绍可以参考Unicode标准。
2192
2193| 名称 | 值 | 说明 |
2194| ---- | -------- | ---------- |
2195| U_UNASSIGNED | U_UNASSIGNED | 表示未分配和非字符代码点对应类别。 |
2196| U_GENERAL_OTHER_TYPES | U_GENERAL_OTHER_TYPES | 与 U_UNASSIGNED 相同。 |
2197| U_UPPERCASE_LETTER | U_UPPERCASE_LETTER | 表示大写字母。 |
2198| U_LOWERCASE_LETTER | U_LOWERCASE_LETTER | 表示小写字母。  |
2199| U_TITLECASE_LETTER | U_TITLECASE_LETTER | 表示首字母大写。 |
2200| U_MODIFIER_LETTER | U_MODIFIER_LETTER | 表示字母修饰符。 |
2201| U_OTHER_LETTER | U_OTHER_LETTER | 表示其它字母,不属于大写字母、小写字母、首字母大写或修饰符字母的字母。 |
2202| U_NON_SPACING_MARK | U_NON_SPACING_MARK | 表示非间距标记,如重音符号',变音符号#。 |
2203| U_ENCLOSING_MARK | U_ENCLOSING_MARK | 表示封闭标记和能围住其它字符的标记,如圆圈、方框等。 |
2204| U_COMBINING_SPACING_MARK | U_COMBINING_SPACING_MARK | 表示间距标记,如元音符号[ ]。 |
2205| U_DECIMAL_DIGIT_NUMBER | U_DECIMAL_DIGIT_NUMBER | 表示十进制数字。 |
2206| U_LETTER_NUMBER | U_LETTER_NUMBER | 表示字母数字,罗马数字。 |
2207| U_OTHER_NUMBER | U_OTHER_NUMBER | 表示其它作为加密符号和记号的数字,非阿拉伯数字的数字表示符,如@、#、(1)、①等。 |
2208| U_SPACE_SEPARATOR | U_SPACE_SEPARATOR | 表示空白分隔符,如空格符、不间断空格、固定宽度的空白符。 |
2209| U_LINE_SEPARATOR | U_LINE_SEPARATOR | 表示行分隔符。|
2210| U_PARAGRAPH_SEPARATOR | U_PARAGRAPH_SEPARATOR | 表示段落分割符。 |
2211| U_CONTROL_CHAR | U_CONTROL_CHAR | 表示控制字符。 |
2212| U_FORMAT_CHAR | U_FORMAT_CHAR | 表示格式字符。 |
2213| U_PRIVATE_USE_CHAR | U_PRIVATE_USE_CHAR | 表示私人使用区代码点类别,例如公司 logo。 |
2214| U_SURROGATE | U_SURROGATE | 表示代理项,在UTF-16中用来表示补充字符的方法。 |
2215| U_DASH_PUNCTUATION | U_DASH_PUNCTUATION | 表示短划线标点。 |
2216| U_START_PUNCTUATION | U_START_PUNCTUATION | 表示开始标点,如左括号。 |
2217| U_END_PUNCTUATION | U_END_PUNCTUATION | 表示结束标点,如右括号。 |
2218| U_INITIAL_PUNCTUATION | U_INITIAL_PUNCTUATION | 表示前引号,如左双引号、左单引号。 |
2219| U_FINAL_PUNCTUATION | U_FINAL_PUNCTUATION | 表示后引号,如右双引号、右单引号。 |
2220| U_CONNECTOR_PUNCTUATION | U_CONNECTOR_PUNCTUATION | 表示连接符标点。 |
2221| U_OTHER_PUNCTUATION | U_OTHER_PUNCTUATION | 表示其他标点。 |
2222| U_MATH_SYMBOL | U_MATH_SYMBOL | 表示数学符号。 |
2223| U_CURRENCY_SYMBOL | U_CURRENCY_SYMBOL | 表示货币符号。 |
2224| U_MODIFIER_SYMBOL | U_MODIFIER_SYMBOL | 表示修饰符号。 |
2225| U_OTHER_SYMBOL | U_OTHER_SYMBOL | 表示其它符号。 |
2226
2227**示例:**
2228  ```ts
2229  let type: string = i18n.Unicode.getType("a"); // type = "U_LOWERCASE_LETTER"
2230  ```
2231
2232## I18NUtil<sup>9+</sup>
2233
2234
2235### unitConvert<sup>9+</sup>
2236
2237static unitConvert(fromUnit: UnitInfo, toUnit: UnitInfo, value: number, locale: string, style?: string): string
2238
2239将fromUnit的单位转换为toUnit的单位,并根据区域与风格进行格式化。
2240
2241**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2242
2243**系统能力**:SystemCapability.Global.I18n
2244
2245**参数:**
2246
2247| 参数名      | 类型                     | 必填   | 说明                                       |
2248| -------- | ---------------------- | ---- | ---------------------------------------- |
2249| fromUnit | [UnitInfo](#unitinfo8) | 是    | 需要转换的单位。                                 |
2250| toUnit   | [UnitInfo](#unitinfo8) | 是    | 转换成的目标单位。                                 |
2251| value    | number                 | 是    | 需要转换的单位的数量值。                             |
2252| locale   | string                 | 是    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成,如:zh-Hans-CN。                |
2253| style    | string                 | 否    | 格式化使用的风格,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。默认值:short。<br>不同取值显示效果请参考[数字与度量衡国际化](../../internationalization/i18n-numbers-weights-measures.md) |
2254
2255**返回值:**
2256
2257| 类型     | 说明                      |
2258| ------ | ----------------------- |
2259| string | 按照toUnit的单位格式化后,得到的字符串。 |
2260
2261**示例:**
2262  ```ts
2263  let fromUnit: i18n.UnitInfo = {unit: "cup", measureSystem: "US"};
2264  let toUnit: i18n.UnitInfo = {unit: "liter", measureSystem: "SI"};
2265  let res: string = i18n.I18NUtil.unitConvert(fromUnit, toUnit, 1000, "en-US", "long"); // res = 236.588 liters
2266  ```
2267
2268### getDateOrder<sup>9+</sup>
2269
2270static getDateOrder(locale: string): string
2271
2272获取某区域日期中年、月、日的排列顺序。
2273
2274**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2275
2276**系统能力**:SystemCapability.Global.I18n
2277
2278**参数:**
2279
2280| 参数名    | 类型     | 必填   | 说明                        |
2281| ------ | ------ | ---- | ------------------------- |
2282| locale | string | 是    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成,如:zh-Hans-CN。 |
2283
2284**返回值:**
2285
2286| 类型     | 说明                  |
2287| ------ | ------------------- |
2288| string | 返回该区域年、月、日的排列顺序。 |
2289
2290**示例:**
2291  ```ts
2292  let order: string = i18n.I18NUtil.getDateOrder("zh-CN");  // order = "y-L-d"
2293  ```
2294
2295
2296### getTimePeriodName<sup>11+</sup>
2297
2298static getTimePeriodName(hour:number, locale?: string): string
2299
2300获取某区域指定时间的本地化表达。
2301
2302**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2303
2304**系统能力**:SystemCapability.Global.I18n
2305
2306**参数:**
2307
2308| 参数名    | 类型     | 必填   | 说明                        |
2309| ------ | ------ | ---- | ------------------------- |
2310| hour | number | 是    | 指定的时间,如:16。 |
2311| locale | string | 否    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成。如:zh-Hans-CN。 <br>默认是当前区域。|
2312
2313**返回值:**
2314
2315| 类型     | 说明                  |
2316| ------ | ------------------- |
2317| string | 返回某区域指定时间的本地化表达。 |
2318
2319**错误码:**
2320
2321以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
2322
2323| 错误码ID  | 错误信息                   |
2324| ------ | ---------------------- |
2325| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
2326| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
2327
2328**示例:**
2329  ```ts
2330  import { BusinessError } from '@kit.BasicServicesKit';
2331
2332  try {
2333    let name: string = i18n.I18NUtil.getTimePeriodName(2, "zh-CN");  // name = "凌晨"
2334  } catch(error) {
2335    let err: BusinessError = error as BusinessError;
2336    console.error(`call I18NUtil.getTimePeriodName failed, error code: ${err.code}, message: ${err.message}.`);
2337  }
2338  ```
2339
2340### getBestMatchLocale<sup>12+</sup>
2341
2342static getBestMatchLocale(locale: string, localeList: string[]): string
2343
2344在指定区域列表中获取与某个区域最佳匹配的区域。
2345
2346**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2347
2348**系统能力**:SystemCapability.Global.I18n
2349
2350**参数:**
2351
2352| 参数名    | 类型     | 必填   | 说明                        |
2353| ------ | ------ | ---- | ------------------------- |
2354| locale | string | 是    | 待匹配的[区域信息字符串](../../internationalization/i18n-locale-culture.md#实现原理),如:zh-Hans-CN。 |
2355| localeList | string[] | 是   | 被指定的区域字符串列表。 |
2356
2357**返回值:**
2358
2359| 类型     | 说明                  |
2360| ------ | ------------------- |
2361| string | 与某个区域最佳匹配的区域ID。当指定区域列表中没有匹配的区域时,返回空字串。 |
2362
2363**错误码:**
2364
2365以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
2366
2367| 错误码ID  | 错误信息                   |
2368| ------ | ---------------------- |
2369| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
2370| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
2371
2372**示例:**
2373
2374  ```ts
2375  import { BusinessError } from '@kit.BasicServicesKit';
2376
2377  try {
2378    let matchedLocaleId: string = i18n.I18NUtil.getBestMatchLocale("zh-Hans-CN", ["en-Latn-US", "en-GB", "zh-Hant-CN", "zh-Hans-MO"]);  // matchedLocaleId = "zh-Hans-MO"
2379  } catch(error) {
2380    let err: BusinessError = error as BusinessError;
2381    console.error(`call I18NUtil.getBestMatchLocale failed, error code: ${err.code}, message: ${err.message}.`);
2382  }
2383  ```
2384
2385### getThreeLetterLanguage<sup>12+</sup>
2386
2387static getThreeLetterLanguage(locale: string): string
2388
2389将语言代码由二字母转换为三字母。<br>例如,中文的二字母语言代码是zh,对应的三字母语言代码是zho,更多详细信息可参考[ISO 639](https://www.iso.org/iso-639-language-code)2390
2391**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2392
2393**系统能力**:SystemCapability.Global.I18n
2394
2395**参数:**
2396
2397| 参数名 | 类型   | 必填 | 说明                     |
2398| ------ | ------ | ---- | ------------------------ |
2399| locale | string | 是   | 待转换的语言二字母代码,如:zh。 |
2400
2401**错误码:**
2402
2403以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
2404
2405| 错误码ID | 错误信息                                                     |
2406| -------- | ------------------------------------------------------------ |
2407| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
2408| 890001   | Invalid parameter. Possible causes: Parameter verification failed. |
2409
2410**示例:**
2411
2412  ```ts
2413  import { BusinessError } from '@kit.BasicServicesKit';
2414
2415  try {
2416    let language : string = i18n.I18NUtil.getThreeLetterLanguage('zh')  // zho
2417  } catch(error) {
2418    console.error(`call I18NUtil.getThreeLetterLanguage failed, error code: ${error.code}, message: ${error.message}.`);
2419  }
2420  ```
2421
2422### getThreeLetterRegion<sup>12+</sup>
2423
2424static getThreeLetterRegion(locale: string): string
2425
2426将地区的二字母代码转换为三字母。<br>例如,中国的二字母地区代码是CN, 三字母是CHN,更多详细信息可参考[ISO 3166](https://www.iso.org/iso-3166-country-codes.html)2427
2428**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2429
2430**系统能力**:SystemCapability.Global.I18n
2431
2432**参数:**
2433
2434| 参数名 | 类型   | 必填 | 说明                     |
2435| ------ | ------ | ---- | ------------------------ |
2436| locale | string | 是   | 待转换的地区二字母代码,如:CN。 |
2437
2438**错误码:**
2439
2440以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
2441
2442| 错误码ID | 错误信息                                                     |
2443| -------- | ------------------------------------------------------------ |
2444| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
2445| 890001   | Invalid parameter. Possible causes: Parameter verification failed. |
2446
2447**示例:**
2448
2449  ```ts
2450  import { BusinessError } from '@kit.BasicServicesKit';
2451
2452  try {
2453    let region : string = i18n.I18NUtil.getThreeLetterRegion('CN')  // CHN
2454  } catch(error) {
2455    console.error(`call I18NUtil.getThreeLetterRegion failed, error code: ${error.code}, message: ${error.message}.`);
2456  }
2457  ```
2458
2459## Normalizer<sup>10+</sup>
2460
2461
2462### getInstance<sup>10+</sup>
2463
2464static getInstance(mode: NormalizerMode): Normalizer
2465
2466获取文本正则化对象。
2467
2468**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2469
2470**系统能力**:SystemCapability.Global.I18n
2471
2472**参数:**
2473
2474| 参数名    | 类型     | 必填   | 说明                        |
2475| ------ | ------ | ---- | ------------------------- |
2476| mode | [NormalizerMode](#normalizermode10) | 是    | 文本正则化范式。 |
2477
2478**返回值:**
2479
2480| 类型     | 说明                  |
2481| ------ | ------------------- |
2482| [Normalizer](#normalizer10) | 返回指定范式的文本正则化对象。 |
2483
2484**错误码:**
2485
2486以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2487
2488| 错误码ID  | 错误信息                   |
2489| ------ | ---------------------- |
2490| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
2491
2492**示例:**
2493  ```ts
2494  let normalizer: i18n.Normalizer = i18n.Normalizer.getInstance(i18n.NormalizerMode.NFC);
2495  ```
2496
2497
2498### normalize<sup>10+</sup>
2499
2500normalize(text: string): string
2501
2502对字符串进行正则化。
2503
2504**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2505
2506**系统能力**:SystemCapability.Global.I18n
2507
2508**参数:**
2509
2510| 参数名    | 类型     | 必填   | 说明                        |
2511| ------ | ------ | ---- | ------------------------- |
2512| text | string | 是    | 待正则化的字符串。 |
2513
2514**返回值:**
2515
2516| 类型     | 说明                  |
2517| ------ | ------------------- |
2518| string | 正则化后的字符串。 |
2519
2520**错误码:**
2521
2522以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2523
2524| 错误码ID  | 错误信息                   |
2525| ------ | ---------------------- |
2526| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
2527
2528**示例:**
2529  ```ts
2530  let normalizer: i18n.Normalizer = i18n.Normalizer.getInstance(i18n.NormalizerMode.NFC);
2531  let normalizedText: string = normalizer.normalize('\u1E9B\u0323'); // normalizedText = ẛ̣
2532  ```
2533
2534## NormalizerMode<sup>10+</sup>
2535
2536文本正则化范式的枚举。
2537
2538**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2539
2540**系统能力:** :SystemCapability.Global.I18n
2541
2542| 名称 | 值 | 说明 |
2543| -------- | -------- | -------- |
2544| NFC | 1 | NFC范式。 |
2545| NFD | 2 | NFD范式。 |
2546| NFKC | 3 | NFKC范式。 |
2547| NFKD | 4 | NFKD范式。 |
2548
2549
2550## HolidayManager<sup>11+</sup>
2551
2552
2553### constructor<sup>11+</sup>
2554
2555constructor(icsPath: String)
2556
2557创建HolidayManager对象。
2558
2559**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2560
2561**系统能力**:SystemCapability.Global.I18n
2562
2563**参数:**
2564
2565|   参数名  |      类型      | 必填 |     说明      |
2566| --------- | ------------- | ---- | ------------- |
2567| icsPath   | String | 是   | 在设备上有应用读取权限的iCalendar格式的ics文件路径。  |
2568
2569**错误码:**
2570
2571以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
2572
2573| 错误码ID  | 错误信息                   |
2574| ------ | ---------------------- |
2575| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
2576| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
2577
2578**示例:**
2579  ```ts
2580  let holidayManager= new i18n.HolidayManager("/system/lib/US.ics");
2581  ```
2582
2583### isHoliday<sup>11+</sup>
2584
2585isHoliday(date?: Date): boolean
2586
2587判断指定的日期是否是节假日。
2588
2589**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2590
2591**系统能力**:SystemCapability.Global.I18n
2592
2593**参数:**
2594
2595|   参数名  |      类型      | 必填 |     说明      |
2596| --------- | ---------------| ---- | ------------- |
2597| date      | Date           | 否   | Date对象。<br>如果没有指定日期,默认为当天。|
2598
2599**返回值:**
2600
2601|       类型        |         说明          |
2602| ----------------- | ----------------------|
2603| boolean           | 返回true是节假日,返回false不是节假日。 |
2604
2605**错误码:**
2606
2607以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
2608
2609| 错误码ID  | 错误信息                   |
2610| ------ | ---------------------- |
2611| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
2612
2613**示例:**
2614  ```ts
2615  import { BusinessError } from '@kit.BasicServicesKit';
2616
2617  try {
2618    let holidayManager= new i18n.HolidayManager("/system/lib/US.ics");
2619    let isHoliday = holidayManager.isHoliday();
2620    console.log(isHoliday.toString());
2621    let isHoliday2 = holidayManager.isHoliday(new Date(2023,5,25));
2622    console.log(isHoliday2.toString());
2623  } catch(error) {
2624    let err: BusinessError = error as BusinessError;
2625    console.error(`call holidayManager.isHoliday failed, error code: ${err.code}, message: ${err.message}.`);
2626  }
2627  ```
2628
2629
2630### getHolidayInfoItemArray<sup>11+</sup>
2631
2632getHolidayInfoItemArray(year?: number): Array&lt;[HolidayInfoItem](#holidayinfoitem11)&gt;
2633
2634获取指定年的节假日信息列表。
2635
2636**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2637
2638**系统能力**:SystemCapability.Global.I18n
2639
2640**参数:**
2641
2642|   参数名  |      类型      | 必填 |     说明      |
2643| --------- | -------------  | ---- | ------------- |
2644| year      | number         | 否   | 年,例如2023。<br>如果没有指定年,默认为当年。|
2645
2646**返回值:**
2647
2648|       类型        |         说明          |
2649| ----------------- | -------------------- |
2650| Array&lt;[HolidayInfoItem](#holidayinfoitem11)&gt; | 返回节假日信息列表。 |
2651
2652**错误码:**
2653
2654以下错误码的详细介绍请参见[ohos.i18n错误码](errorcode-i18n.md)和[通用错误码](../errorcode-universal.md)。
2655
2656| 错误码ID  | 错误信息                   |
2657| ------ | ---------------------- |
2658| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. |
2659| 890001 | Invalid parameter. Possible causes: Parameter verification failed. |
2660
2661**示例:**
2662  ```ts
2663  import { BusinessError } from '@kit.BasicServicesKit';
2664
2665  try {
2666    let holidayManager= new i18n.HolidayManager("/system/lib/US.ics");
2667    let holidayInfoItemArray = holidayManager.getHolidayInfoItemArray(2023);
2668    for (let i =0; i < holidayInfoItemArray.length; i++) {
2669        console.log(JSON.stringify(holidayInfoItemArray[i]));
2670    }
2671  } catch(error) {
2672    let err: BusinessError = error as BusinessError;
2673    console.error(`call holidayManager.getHolidayInfoItemArray failed, error code: ${err.code}, message: ${err.message}.`);
2674  }
2675  ```
2676
2677## HolidayInfoItem<sup>11+</sup>
2678
2679节假日信息。
2680
2681**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2682
2683**系统能力**:SystemCapability.Global.I18n
2684
2685| 名称            | 类型             |  必填   |  说明                                   |
2686| --------------- | --------------- | ------  | --------------------------------------- |
2687| baseName        | string          |   是    | 节假日的英文名称。              |
2688| year            | number          |   是    | 节假日所在年。                   |
2689| month           | number          |   是    | 节假日所在月。          |
2690| day             | number          |   是    | 节假日所在日。                         |
2691| localNames      | Array&lt;[HolidayLocalName](#holidaylocalname11)&gt;          |   否    | 节假日的本地名称列表。          |
2692
2693## HolidayLocalName<sup>11+</sup>
2694
2695节假日本地名称。
2696
2697**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
2698
2699**系统能力**:SystemCapability.Global.I18n
2700
2701| 名称            | 类型             |  必填   |  说明                                   |
2702| --------------- | -----------------| ------  | --------------------------------------- |
2703| language        | string           |   是    | 节假日的本地语言,例如ar,en,tr。          |
2704| name            | string           |   是    | 节假日的本地名称,例如Sacrifice Feast(宰牲节)的土耳其语名称为Kurban Bayrami。      |
2705
2706
2707## i18n.getDisplayCountry<sup>(deprecated)</sup>
2708
2709getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): string
2710
2711获取指定国家的本地化显示文本。
2712
2713从API version 9开始不再维护,建议使用[System.getDisplayCountry](#getdisplaycountry9)代替。
2714
2715**系统能力**:SystemCapability.Global.I18n
2716
2717**参数:**
2718
2719| 参数名          | 类型      | 必填   | 说明               |
2720| ------------ | ------- | ---- | ---------------- |
2721| country      | string  | 是    | 指定国家。            |
2722| locale       | string  | 是    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成。      |
2723| sentenceCase | boolean | 否    | 本地化显示文本是否要首字母大写。默认值:true。 |
2724
2725**返回值:**
2726
2727| 类型     | 说明            |
2728| ------ | ------------- |
2729| string | 指定国家的本地化显示文本。 |
2730
2731**示例:**
2732  ```ts
2733  let countryName: string = i18n.getDisplayCountry("zh-CN", "en-GB", true); // countryName = China
2734  countryName = i18n.getDisplayCountry("zh-CN", "en-GB"); // countryName = China
2735  ```
2736
2737## i18n.getDisplayCountry<sup>(deprecated)</sup>
2738
2739getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): string
2740
2741获取指定国家的本地化显示文本。
2742
2743从API version 9开始不再维护,建议使用[System.getDisplayCountry](#getdisplaycountry9)代替。
2744
2745**系统能力**:SystemCapability.Global.I18n
2746
2747**参数:**
2748
2749| 参数名          | 类型      | 必填   | 说明               |
2750| ------------ | ------- | ---- | ---------------- |
2751| country      | string  | 是    | 指定国家。            |
2752| locale       | string  | 是    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成。      |
2753| sentenceCase | boolean | 否    | 本地化显示文本是否要首字母大写。默认值:true。 |
2754
2755**返回值:**
2756
2757| 类型     | 说明            |
2758| ------ | ------------- |
2759| string | 指定国家的本地化显示文本。 |
2760
2761**示例:**
2762  ```ts
2763  let countryName: string = i18n.getDisplayCountry("zh-CN", "en-GB", true); // countryName = China
2764  countryName = i18n.getDisplayCountry("zh-CN", "en-GB"); // countryName = China
2765  ```
2766
2767
2768## i18n.getDisplayLanguage<sup>(deprecated)</sup>
2769
2770getDisplayLanguage(language: string, locale: string, sentenceCase?: boolean): string
2771
2772获取指定语言的本地化显示文本。
2773
2774从API version 9开始不再维护,建议使用[System.getDisplayLanguage](#getdisplaylanguage9)代替。
2775
2776**系统能力**:SystemCapability.Global.I18n
2777
2778**参数:**
2779
2780| 参数名          | 类型      | 必填   | 说明               |
2781| ------------ | ------- | ---- | ---------------- |
2782| language     | string  | 是    | 指定语言。            |
2783| locale       | string  | 是    | [表示区域信息的字符串](../../internationalization/i18n-locale-culture.md#实现原理),由语言、脚本、国家或地区组成。      |
2784| sentenceCase | boolean | 否    | 本地化显示文本是否要首字母大写。默认值:true。 |
2785
2786**返回值:**
2787
2788| 类型     | 说明            |
2789| ------ | ------------- |
2790| string | 指定语言的本地化显示文本。 |
2791
2792**示例:**
2793  ```ts
2794  let languageName: string = i18n.getDisplayLanguage("zh", "en-GB", true); // languageName = "Chinese"
2795  languageName = i18n.getDisplayLanguage("zh", "en-GB"); // languageName = "Chinese"
2796  ```
2797
2798
2799## i18n.getSystemLanguage<sup>(deprecated)</sup>
2800
2801getSystemLanguage(): string
2802
2803获取系统语言。
2804
2805从API version 9开始不再维护,建议使用[System.getSystemLanguage](#getsystemlanguage9)代替。
2806
2807**系统能力**:SystemCapability.Global.I18n
2808
2809**返回值:**
2810
2811| 类型     | 说明      |
2812| ------ | ------- |
2813| string | 系统语言ID。 |
2814
2815**示例:**
2816  ```ts
2817  let systemLanguage: string = i18n.getSystemLanguage(); // 返回当前系统语言
2818  ```
2819
2820
2821## i18n.getSystemRegion<sup>(deprecated)</sup>
2822
2823getSystemRegion(): string
2824
2825获取系统地区。
2826
2827从API version 9开始不再维护,建议使用[System.getSystemRegion](#getsystemregion9)代替。
2828
2829**系统能力**:SystemCapability.Global.I18n
2830
2831**返回值:**
2832
2833| 类型     | 说明      |
2834| ------ | ------- |
2835| string | 系统地区ID。 |
2836
2837**示例:**
2838  ```ts
2839  let region: string = i18n.getSystemRegion(); // 返回当前系统地区
2840  ```
2841
2842
2843## i18n.getSystemLocale<sup>(deprecated)</sup>
2844
2845getSystemLocale(): string
2846
2847获取系统区域。
2848
2849从API version 9开始不再维护,建议使用[System.getSystemLocale](#getsystemlocale9)代替。
2850
2851**系统能力**:SystemCapability.Global.I18n
2852
2853**返回值:**
2854
2855| 类型     | 说明      |
2856| ------ | ------- |
2857| string | 系统区域ID。 |
2858
2859**示例:**
2860  ```ts
2861  let locale: string = i18n.getSystemLocale(); // 返回系统Locale
2862  ```
2863
2864
2865## i18n.is24HourClock<sup>(deprecated)</sup>
2866
2867is24HourClock(): boolean
2868
2869判断系统时间是否为24小时制。
2870
2871从API version 9开始不再维护,建议使用[System.is24HourClock](#is24hourclock9)代替。
2872
2873**系统能力**:SystemCapability.Global.I18n
2874
2875**返回值:**
2876
2877| 类型      | 说明                                       |
2878| ------- | ---------------------------------------- |
2879| boolean | 返回true,表示系统24小时开关开启;返回false,表示系统24小时开关关闭。 |
2880
2881**示例:**
2882  ```ts
2883  let is24HourClock: boolean = i18n.is24HourClock();
2884  ```
2885
2886
2887## i18n.set24HourClock<sup>(deprecated)</sup>
2888
2889set24HourClock(option: boolean): boolean
2890
2891修改系统时间的24小时制设置。
2892
2893从API version 9开始不再维护,替代接口仅支持系统应用使用。
2894
2895**需要权限**:ohos.permission.UPDATE_CONFIGURATION
2896
2897**系统能力**:SystemCapability.Global.I18n
2898
2899**参数:**
2900
2901| 参数名    | 类型      | 必填   | 说明                                       |
2902| ------ | ------- | ---- | ---------------------------------------- |
2903| option | boolean | 是    | option为true,表示开启系统24小时制开关;返回false,表示关闭系统24小时开关。 |
2904
2905**返回值:**
2906
2907| 类型      | 说明                            |
2908| ------- | ----------------------------- |
2909| boolean | 返回true,表示修改成功;返回false,表示修改失败。 |
2910
2911**示例:**
2912  ```ts
2913  // 将系统时间设置为24小时制
2914  let success: boolean = i18n.set24HourClock(true);
2915  ```
2916
2917
2918## i18n.addPreferredLanguage<sup>(deprecated)</sup>
2919
2920addPreferredLanguage(language: string, index?: number): boolean
2921
2922在系统偏好语言列表中的指定位置添加偏好语言。
2923
2924从API version 8开始支持,从API version 9开始不再维护,替代接口仅支持系统应用使用。
2925
2926**需要权限**:ohos.permission.UPDATE_CONFIGURATION
2927
2928**系统能力**:SystemCapability.Global.I18n
2929
2930**参数:**
2931
2932| 参数名      | 类型     | 必填   | 说明         |
2933| -------- | ------ | ---- | ---------- |
2934| language | string | 是    | 待添加的偏好语言。  |
2935| index    | number | 否    | 偏好语言的添加位置。默认值:系统偏好语言列表长度。 |
2936
2937**返回值:**
2938
2939| 类型      | 说明                            |
2940| ------- | ----------------------------- |
2941| boolean | 返回true,表示添加成功;返回false,表示添加失败。 |
2942
2943**示例:**
2944  ```ts
2945  // 将语言zh-CN添加到系统偏好语言列表中
2946  let language: string = 'zh-CN';
2947  let index: number = 0;
2948  let success: boolean = i18n.addPreferredLanguage(language, index);
2949  ```
2950
2951
2952## i18n.removePreferredLanguage<sup>(deprecated)</sup>
2953
2954removePreferredLanguage(index: number): boolean
2955
2956删除系统偏好语言列表中指定位置的偏好语言。
2957
2958从API version 8开始支持,从API version 9开始不再维护,替代接口仅支持系统应用使用。
2959
2960**需要权限**:ohos.permission.UPDATE_CONFIGURATION
2961
2962**系统能力**:SystemCapability.Global.I18n
2963
2964**参数:**
2965
2966| 参数名   | 类型     | 必填   | 说明                    |
2967| ----- | ------ | ---- | --------------------- |
2968| index | number | 是    | 待删除偏好语言在系统偏好语言列表中的位置。 |
2969
2970**返回值:**
2971
2972| 类型      | 说明                            |
2973| ------- | ----------------------------- |
2974| boolean | 返回true,表示删除成功;返回false,表示删除失败。 |
2975
2976**示例:**
2977  ```ts
2978  // 删除系统偏好语言列表中的第一个偏好语言
2979  let index: number = 0;
2980  let success: boolean = i18n.removePreferredLanguage(index);
2981  ```
2982
2983
2984## i18n.getPreferredLanguageList<sup>(deprecated)</sup>
2985
2986getPreferredLanguageList(): Array&lt;string&gt;
2987
2988获取系统偏好语言列表。
2989
2990从API version 8开始支持,从API version 9开始不再维护,建议使用[System.getPreferredLanguageList](#getpreferredlanguagelist9)代替。
2991
2992**系统能力**:SystemCapability.Global.I18n
2993
2994**返回值:**
2995
2996| 类型                  | 说明        |
2997| ------------------- | --------- |
2998| Array&lt;string&gt; | 系统偏好语言列表。 |
2999
3000**示例:**
3001  ```ts
3002  let preferredLanguageList: Array<string> = i18n.getPreferredLanguageList(); // 获取系统偏好语言列表
3003  ```
3004
3005
3006## i18n.getFirstPreferredLanguage<sup>(deprecated)</sup>
3007
3008getFirstPreferredLanguage(): string
3009
3010获取偏好语言列表中的第一个偏好语言。
3011
3012从API version 8开始支持,从API version 9开始不再维护,建议使用[System.getFirstPreferredLanguage](#getfirstpreferredlanguage9)代替。
3013
3014**系统能力**:SystemCapability.Global.I18n
3015
3016**返回值:**
3017
3018| 类型     | 说明             |
3019| ------ | -------------- |
3020| string | 偏好语言列表中的第一个语言。 |
3021
3022**示例:**
3023  ```ts
3024  let firstPreferredLanguage: string = i18n.getFirstPreferredLanguage();
3025  ```
3026
3027
3028## Util<sup>(deprecated)</sup>
3029
3030
3031### unitConvert<sup>(deprecated)</sup>
3032
3033unitConvert(fromUnit: UnitInfo, toUnit: UnitInfo, value: number, locale: string, style?: string): string
3034
3035将fromUnit的单位转换为toUnit的单位,并根据区域与风格进行格式化。
3036
3037从API version 8开始支持,从API version 9开始不再维护,建议使用[unitConvert](#unitconvert9)代替。
3038
3039**系统能力**:SystemCapability.Global.I18n
3040
3041**参数:**
3042
3043| 参数名      | 类型                     | 必填   | 说明                                       |
3044| -------- | ---------------------- | ---- | ---------------------------------------- |
3045| fromUnit | [UnitInfo](#unitinfo8) | 是    | 要被转换的单位。                                 |
3046| toUnit   | [UnitInfo](#unitinfo8) | 是    | 要转换为的单位。                                 |
3047| value    | number                 | 是    | 要被转换的单位的数量值。                             |
3048| locale   | string                 | 是    | 格式化时使用的区域参数,如:zh-Hans-CN。                |
3049| style    | string                 | 否    | 格式化使用的风格,取值包括:"long",&nbsp;"short",&nbsp;"narrow"。默认值:short。 |
3050
3051**返回值:**
3052
3053| 类型     | 说明                      |
3054| ------ | ----------------------- |
3055| string | 按照toUnit的单位格式化后,得到的字符串。 |
3056
3057
3058## Character<sup>(deprecated)</sup>
3059
3060
3061### isDigit<sup>(deprecated)</sup>
3062
3063isDigit(char: string): boolean
3064
3065判断字符串char是否是数字。
3066
3067从API version 8开始支持,从API version 9开始不再维护,建议使用[isDigit](#isdigit9)代替。
3068
3069**系统能力**:SystemCapability.Global.I18n
3070
3071**参数:**
3072
3073| 参数名  | 类型     | 必填   | 说明    |
3074| ---- | ------ | ---- | ----- |
3075| char | string | 是    | 输入字符。 |
3076
3077**返回值:**
3078
3079| 类型      | 说明                                   |
3080| ------- | ------------------------------------ |
3081| boolean | 返回true表示输入的字符是数字,返回false表示输入的字符不是数字。 |
3082
3083
3084### isSpaceChar<sup>(deprecated)</sup>
3085
3086isSpaceChar(char: string): boolean
3087
3088判断字符串char是否是空格符。
3089
3090从API version 8开始支持,从API version 9开始不再维护,建议使用[isSpaceChar](#isspacechar9)代替。
3091
3092**系统能力**:SystemCapability.Global.I18n
3093
3094**参数:**
3095
3096| 参数名  | 类型     | 必填   | 说明    |
3097| ---- | ------ | ---- | ----- |
3098| char | string | 是    | 输入字符。 |
3099
3100**返回值:**
3101
3102| 类型      | 说明                                     |
3103| ------- | -------------------------------------- |
3104| boolean | 返回true表示输入的字符是空格符,返回false表示输入的字符不是空格符。 |
3105
3106
3107### isWhitespace<sup>(deprecated)</sup>
3108
3109isWhitespace(char: string): boolean
3110
3111判断字符串char是否是空白符。
3112
3113从API version 8开始支持,从API version 9开始不再维护,建议使用[isWhitespace](#iswhitespace9)代替。
3114
3115**系统能力**:SystemCapability.Global.I18n
3116
3117**参数:**
3118
3119| 参数名  | 类型     | 必填   | 说明    |
3120| ---- | ------ | ---- | ----- |
3121| char | string | 是    | 输入字符。 |
3122
3123**返回值:**
3124
3125| 类型      | 说明                                     |
3126| ------- | -------------------------------------- |
3127| boolean | 返回true表示输入的字符是空白符,返回false表示输入的字符不是空白符。 |
3128
3129
3130### isRTL<sup>(deprecated)</sup>
3131
3132isRTL(char: string): boolean
3133
3134判断字符串char是否是从右到左语言的字符。
3135
3136从API version 8开始支持,从API version 9开始不再维护,建议使用[isRTL](#isrtl9)代替。
3137
3138**系统能力**:SystemCapability.Global.I18n
3139
3140**参数:**
3141
3142| 参数名  | 类型     | 必填   | 说明    |
3143| ---- | ------ | ---- | ----- |
3144| char | string | 是    | 输入字符。 |
3145
3146**返回值:**
3147
3148| 类型      | 说明                                       |
3149| ------- | ---------------------------------------- |
3150| boolean | 返回true表示输入的字符是从右到左语言的字符,返回false表示输入的字符不是从右到左语言的字符。 |
3151
3152
3153### isIdeograph<sup>(deprecated)</sup>
3154
3155isIdeograph(char: string): boolean
3156
3157判断字符串char是否是表意文字。
3158
3159从API version 8开始支持,从API version 9开始不再维护,建议使用[isIdeograph](#isideograph9)代替。
3160
3161**系统能力**:SystemCapability.Global.I18n
3162
3163**参数:**
3164
3165| 参数名  | 类型     | 必填   | 说明    |
3166| ---- | ------ | ---- | ----- |
3167| char | string | 是    | 输入字符。 |
3168
3169**返回值:**
3170
3171| 类型      | 说明                                       |
3172| ------- | ---------------------------------------- |
3173| boolean | 返回true表示输入的字符是表意文字,返回false表示输入的字符不是表意文字。 |
3174
3175
3176### isLetter<sup>(deprecated)</sup>
3177
3178isLetter(char: string): boolean
3179
3180判断字符串char是否是字母。
3181
3182从API version 8开始支持,从API version 9开始不再维护,建议使用[isLetter](#isletter9)代替。
3183
3184**系统能力**:SystemCapability.Global.I18n
3185
3186**参数:**
3187
3188| 参数名  | 类型     | 必填   | 说明    |
3189| ---- | ------ | ---- | ----- |
3190| char | string | 是    | 输入字符。 |
3191
3192**返回值:**
3193
3194| 类型      | 说明                                   |
3195| ------- | ------------------------------------ |
3196| boolean | 返回true表示输入的字符是字母,返回false表示输入的字符不是字母。 |
3197
3198
3199### isLowerCase<sup>(deprecated)</sup>
3200
3201isLowerCase(char: string): boolean
3202
3203判断字符串char是否是小写字母。
3204
3205从API version 8开始支持,从API version 9开始不再维护,建议使用[isLowerCase](#islowercase9)代替。
3206
3207**系统能力**:SystemCapability.Global.I18n
3208
3209**参数:**
3210
3211| 参数名  | 类型     | 必填   | 说明    |
3212| ---- | ------ | ---- | ----- |
3213| char | string | 是    | 输入字符。 |
3214
3215**返回值:**
3216
3217| 类型      | 说明                                       |
3218| ------- | ---------------------------------------- |
3219| boolean | 返回true表示输入的字符是小写字母,返回false表示输入的字符不是小写字母。 |
3220
3221
3222### isUpperCase<sup>(deprecated)</sup>
3223
3224isUpperCase(char: string): boolean
3225
3226判断字符串char是否是大写字母。
3227
3228从API version 8开始支持,从API version 9开始不再维护,建议使用[isUpperCase](#isuppercase9)代替。
3229
3230**系统能力**:SystemCapability.Global.I18n
3231
3232**参数:**
3233
3234| 参数名  | 类型     | 必填   | 说明    |
3235| ---- | ------ | ---- | ----- |
3236| char | string | 是    | 输入字符。 |
3237
3238**返回值:**
3239
3240| 类型      | 说明                                       |
3241| ------- | ---------------------------------------- |
3242| boolean | 返回true表示输入的字符是大写字母,返回false表示输入的字符不是大写字母。 |
3243
3244
3245### getType<sup>(deprecated)</sup>
3246
3247getType(char: string): string
3248
3249获取输入字符串的一般类别值。
3250
3251从API version 8开始支持,从API version 9开始不再维护,建议使用[getType](#gettype9)代替。
3252
3253**系统能力**:SystemCapability.Global.I18n
3254
3255**参数:**
3256
3257| 参数名  | 类型     | 必填   | 说明    |
3258| ---- | ------ | ---- | ----- |
3259| char | string | 是    | 输入字符。 |
3260
3261**返回值:**
3262
3263| 类型     | 说明          |
3264| ------ | ----------- |
3265| string | 输入字符的一般类别值。 |
3266