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