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<string> 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<string> | 系统支持的语言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<string> 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<string> | 系统支持某种特定语言的国家或地区列表。 | 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<string> 327 328获取系统偏好语言列表。 329 330**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 331 332**系统能力**:SystemCapability.Global.I18n 333 334**返回值:** 335 336| 类型 | 说明 | 337| ------------------- | --------- | 338| Array<string> | 系统偏好语言列表。 | 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, chinese, coptic, ethiopic, hebrew, gregory, indian, islamic_civil, islamic_tbla, islamic_umalqura, japanese, 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<EntityInfoItem> 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<[EntityInfoItem](#entityinfoitem11)> | 文本中的实体信息列表。 | 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 00:00:00 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 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值有 year, month, week_of_year, week_of_month, date, day_of_year, day_of_week, day_of_week_in_month, hour, hour_of_day, minute, second, 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", "INTERNATIONAL", "NATIONAL", "RFC3966", "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", "inch", "cup"等。 | 1184| measureSystem | string | 是 | 是 | 单位的度量体系,取值包括:"SI", "US", "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<string> 1222 1223获取当前区域的索引列表。 1224 1225**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1226 1227**系统能力**:SystemCapability.Global.I18n 1228 1229**返回值:** 1230 1231| 类型 | 说明 | 1232| ------------------- | ------------------ | 1233| Array<string> | 返回当前区域的索引列表。 | 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<string> 1703 1704获取系统支持的时区ID。 1705 1706**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1707 1708**系统能力**:SystemCapability.Global.I18n 1709 1710**返回值:** 1711 1712| 类型 | 说明 | 1713| ------------------- | ----------- | 1714| Array<string> | 系统支持的时区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<string> 1726 1727获取系统支持的时区城市ID。 1728 1729**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1730 1731**系统能力**:SystemCapability.Global.I18n 1732 1733**返回值:** 1734 1735| 类型 | 说明 | 1736| ------------------- | ------------- | 1737| Array<string> | 系统支持的时区城市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<TimeZone> 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<[TimeZone](#timezone)> | 时区对象数组。 | 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", "short", "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<[HolidayInfoItem](#holidayinfoitem11)> 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<[HolidayInfoItem](#holidayinfoitem11)> | 返回节假日信息列表。 | 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<[HolidayLocalName](#holidaylocalname11)> | 否 | 节假日的本地名称列表。 | 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<string> 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<string> | 系统偏好语言列表。 | 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", "short", "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