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