1# @ohos.intl (国际化-Intl) 2 3 本模块提供基础的应用国际化能力,包括时间日期格式化、数字格式化、排序等,相关接口在ECMA 402标准中定义。 4[I18N模块](js-apis-i18n.md)提供其他非ECMA 402定义的国际化接口,与本模块共同使用可提供完整地国际化支持能力。 5 6> **说明:** 7> - 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> 9> - Intl模块包含国际化能力基础接口(在ECMA 402中定义),包括时间日期格式化、数字格式化、排序等,国际化增强能力请参考[I18N模块](js-apis-i18n.md)。 10 11 12## 导入模块 13 14```js 15import Intl from '@ohos.intl'; 16``` 17未正确导入包可能产生不明确的接口行为。 18 19## Locale 20 21 22### 属性 23 24**系统能力**:SystemCapability.Global.I18n 25 26| 名称 | 类型 | 可读 | 可写 | 说明 | 27| --------------- | ------- | ---- | ---- | ---------------------------------------- | 28| language | string | 是 | 否 | 与区域设置关联的语, 如:zh。 | 29| script | string | 是 | 否 | 语言的书写方式,如:Hans。 | 30| region | string | 是 | 否 | 与区域设置相关的地区,如:CN。 | 31| baseName | string | 是 | 否 | Locale的基本核心信息(由语言脚本与地区组成),如:zh-Hans-CN。 | 32| caseFirst | string | 是 | 否 | 区域的整理规则是否考虑大小写,取值包括:"upper", "lower", "false"。 | 33| calendar | string | 是 | 否 | 区域的日历信息,取值包括:"buddhist", "chinese", "coptic","dangi", "ethioaa", "ethiopic", "gregory", "hebrew", "indian", "islamic", "islamic-umalqura", "islamic-tbla", "islamic-civil", "islamic-rgsa", "iso8601", "japanese", "persian", "roc", "islamicc"。 | 34| collation | string | 是 | 否 | 区域的排序规则,取值包括:"big5han", "compat", "dict", "direct", "ducet", "eor", "gb2312", "phonebk", "phonetic", "pinyin", "reformed", "searchjl", "stroke", "trad", "unihan", "zhuyin"。 | 35| hourCycle | string | 是 | 否 | 区域的时制信息,取值包括:"h12", "h23", "h11", "h24"。 | 36| numberingSystem | string | 是 | 否 | 区域使用的数字系统,取值包括:"adlm", "ahom", "arab", "arabext", "bali", "beng", "bhks", "brah", "cakm", "cham", "deva", "diak", "fullwide", "gong", "gonm", "gujr", "guru", "hanidec", "hmng", "hmnp", "java", "kali", "khmr", "knda", "lana", "lanatham", "laoo", "latn", "lepc", "limb", "mathbold", "mathdbl", "mathmono", "mathsanb", "mathsans", "mlym", "modi", "mong", "mroo", "mtei", "mymr", "mymrshan", "mymrtlng", "newa", "nkoo", "olck", "orya", "osma", "rohg", "saur", "segment", "shrd", "sind", "sinh", "sora", "sund", "takr", "talu", "tamldec", "telu", "thai", "tibt", "tirh", "vaii", "wara", "wcho"。 | 37| numeric | boolean | 是 | 否 | 是否对数字字符具有特殊的排序规则处理。 | 38 39 40### constructor<sup>8+</sup> 41 42constructor() 43 44创建区域对象 45 46**系统能力**:SystemCapability.Global.I18n 47 48**示例:** 49 ```js 50 // 默认构造函数使用系统当前locale创建Locale对象 51 let locale = new Intl.Locale(); 52 // 返回系统当前localel 53 let localeID = locale.toString(); 54 ``` 55 56 57### constructor 58 59constructor(locale: string, options?: LocaleOptions) 60 61创建区域对象 62 63**系统能力**:SystemCapability.Global.I18n 64 65**参数:** 66 67| 参数名 | 类型 | 必填 | 说明 | 68| -------------------- | -------------------------------- | ---- | ---------------------------- | 69| locale | string | 是 | 包含区域信息的字符串,包括语言以、脚本、国家或地区。语言、脚本、国家或地区的国际标准及组合方式请见[Intl开发指导](../../internationalization/intl-guidelines.md#设置区域信息) | 70| options<sup>9+</sup> | [LocaleOptions](#localeoptions9) | 否 | 用于创建区域对象的选项。 | 71 72**示例:** 73 ```js 74 // 创建 "zh-CN" Locale对象 75 let locale = new Intl.Locale("zh-CN"); 76 let localeID = locale.toString(); // localeID = "zh-CN" 77 ``` 78 79 80### toString 81 82toString(): string 83 84获取区域对象的字符串表示 85 86**系统能力**:SystemCapability.Global.I18n 87 88**返回值:** 89 90| 类型 | 说明 | 91| ------ | ----------- | 92| string | 区域对象的字符串表示。 | 93 94**示例:** 95 ```js 96 // 创建 "en-GB" Locale对象 97 let locale = new Intl.Locale("en-GB"); 98 let localeID = locale.toString(); // localeID = "en-GB" 99 ``` 100 101 102### maximize 103 104maximize(): Locale 105 106最大化区域信息,若缺少脚本与地区信息,则补齐。 107 108**系统能力**:SystemCapability.Global.I18n 109 110**返回值:** 111 112| 类型 | 说明 | 113| ----------------- | ---------- | 114| [Locale](#locale) | 最大化后的区域对象。 | 115 116**示例:** 117 ```js 118 // 创建 "zh" Locale对象 119 let locale = new Intl.Locale("zh"); 120 // 补齐Locale对象的脚本和地区 121 let maximizedLocale = locale.maximize(); 122 let localeID = maximizedLocale.toString(); // localeID = "zh-Hans-CN" 123 124 // 创建 "en-US" Locale对象 125 locale = new Intl.Locale("en-US"); 126 // 补齐Locale对象的脚本 127 maximizedLocale = locale.maximize(); 128 localeID = maximizedLocale.toString(); // localeID = "en-Latn-US" 129 ``` 130 131 132### minimize 133 134minimize(): Locale 135 136最小化区域信息,若包含脚本与地区信息,则去除。 137 138**系统能力**:SystemCapability.Global.I18n 139 140**返回值:** 141 142| 类型 | 说明 | 143| ----------------- | ---------- | 144| [Locale](#locale) | 最小化后的区域对象。 | 145 146**示例:** 147 ```js 148 // 创建 "zh-Hans-CN" Locale对象 149 let locale = new Intl.Locale("zh-Hans-CN"); 150 // 去除Locale对象的脚本和地区 151 let minimizedLocale = locale.minimize(); 152 let localeID = minimizedLocale.toString(); // localeID = "zh" 153 154 // 创建 "en-US" Locale对象 155 locale = new Intl.Locale("en-US"); 156 // 去除Locale对象的地区 157 minimizedLocale = locale.minimize(); 158 localeID = minimizedLocale.toString(); // localeID = "en" 159 ``` 160 161 162## LocaleOptions<sup>9+</sup> 163 164表示区域初始化选项。 165 166**系统能力**:SystemCapability.Global.I18n 167 168| 名称 | 类型 | 可读 | 可写 | 说明 | 169| --------------- | ------- | ---- | ---- | ---------------------------------------- | 170| calendar | string | 是 | 是 | 日历参数,如:"buddhist", "chinese", "coptic", "dangi", "ethioaa", "ethiopic", "gregory", "hebrew", "indian", "islamic", "islamic-umalqura", "islamic-tbla", "islamic-civil", "islamic-rgsa", "iso8601", "japanese", "persian", "roc", "islamicc"。 | 171| collation | string | 是 | 是 | 排序参数,取值包括:"big5han", "compat", "dict", "direct", "ducet", "emoji", "eor", "gb2312", "phonebk", "phonetic", "pinyin", "reformed ", "search", "searchjl", "standard", "stroke", "trad", "unihan", "zhuyin"。 | 172| hourCycle | string | 是 | 是 | 时制格式,取值包括:"h11", "h12", "h23", "h24"。 | 173| numberingSystem | string | 是 | 是 | 数字系统,取值包括:"adlm", "ahom", "arab", "arabext", "bali", "beng", "bhks", "brah", "cakm", "cham", "deva", "diak", "fullwide", "gong", "gonm", "gujr", "guru", "hanidec", "hmng", "hmnp", "java", "kali", "khmr", "knda", "lana", "lanatham", "laoo", "latn", "lepc", "limb", "mathbold", "mathdbl", "mathmono", "mathsanb", "mathsans", "mlym", "modi", "mong", "mroo", "mtei", "mymr", "mymrshan", "mymrtlng", "newa", "nkoo", "olck", "orya", "osma", "rohg", "saur", "segment", "shrd", "sind", "sinh", "sora", "sund", "takr", "talu", "tamldec", "telu", "thai", "tibt", "tirh", "vaii", "wara", "wcho"。 | 174| numeric | boolean | 是 | 是 | 是否使用12小时制。 | 175| caseFirst | string | 是 | 是 | 表示大写、小写的排序顺序,取值范围:"upper", "lower", "false"。 | 176 177 178## DateTimeFormat 179 180 181### constructor<sup>8+</sup> 182 183constructor() 184 185创建时间日期格式化对象。 186 187**系统能力**:SystemCapability.Global.I18n 188 189**示例:** 190 ```js 191 // 使用系统当前locale创建DateTimeFormat对象 192 let datefmt= new Intl.DateTimeFormat(); 193 ``` 194 195 196### constructor 197 198constructor(locale: string | Array<string>, options?: DateTimeOptions) 199 200创建时间日期格式化对象。 201 202**系统能力**:SystemCapability.Global.I18n 203 204**参数:** 205 206| 参数名 | 类型 | 必填 | 说明 | 207| -------------------- | ------------------------------------ | ---- | ---------------------------- | 208| locale | string \| Array<string> | 是 | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 | 209| options<sup>9+</sup> | [DateTimeOptions](#datetimeoptions9) | 否 | 用于创建时间日期格式化的选项。 | 210 211**示例:** 212 ```js 213 // 使用 "zh-CN" locale创建DateTimeFormat对象,日期风格为full,时间风格为medium 214 let datefmt= new Intl.DateTimeFormat("zh-CN", { dateStyle: 'full', timeStyle: 'medium' }); 215 ``` 216 217 218**示例:** 219 ```js 220 // 使用 ["ban", "zh"] locale列表创建DateTimeFormat对象,因为ban为非法LocaleID,因此使用zh Locale创建DateTimeFormat对象 221 let datefmt= new Intl.DateTimeFormat(["ban", "zh"], { dateStyle: 'full', timeStyle: 'medium' }); 222 ``` 223 224 225### format 226 227format(date: Date): string 228 229格式化时间日期字符串。 230 231**系统能力**:SystemCapability.Global.I18n 232 233**参数:** 234 235| 参数名 | 类型 | 必填 | 说明 | 236| ---- | ---- | ---- | ------- | 237| date | Date | 是 | 时间日期对象。 | 238 239**返回值:** 240 241| 类型 | 说明 | 242| ------ | ------------ | 243| string | 格式化后的时间日期字符串 | 244 245**示例:** 246 ```js 247 let date = new Date(2021, 11, 17, 3, 24, 0); 248 // 使用 en-GB locale创建DateTimeFormat对象 249 let datefmt = new Intl.DateTimeFormat("en-GB"); 250 let formattedDate = datefmt.format(date); // formattedDate "17/12/2021" 251 252 // 使用 en-GB locale创建DateTimeFormat对象,dateStyle设置为full,timeStyle设置为medium 253 datefmt = new Intl.DateTimeFormat("en-GB", { dateStyle: 'full', timeStyle: 'medium' }); 254 formattedDate = datefmt.format(date); // formattedDate "Friday, 17 December 2021 at 03:24:00" 255 ``` 256 257 258### formatRange 259 260formatRange(startDate: Date, endDate: Date): string 261 262格式化时间日期段字符串。 263 264**系统能力**:SystemCapability.Global.I18n 265 266**参数:** 267 268| 参数名 | 类型 | 必填 | 说明 | 269| --------- | ---- | ---- | -------- | 270| startDate | Date | 是 | 起始的时间日期。 | 271| endDate | Date | 是 | 结束的时间日期。 | 272 273**返回值:** 274 275| 类型 | 说明 | 276| ------ | -------------- | 277| string | 格式化后的时间日期段字符串。 | 278 279**示例:** 280 ```js 281 let startDate = new Date(2021, 11, 17, 3, 24, 0); 282 let endDate = new Date(2021, 11, 18, 3, 24, 0); 283 // 使用 en-GB locale创建DateTimeFormat对象 284 let datefmt = new Intl.DateTimeFormat("en-GB"); 285 let formattedDateRange = datefmt.formatRange(startDate, endDate); // formattedDateRange = "17/12/2021-18/12/2021" 286 ``` 287 288 289### resolvedOptions 290 291resolvedOptions(): DateTimeOptions 292 293获取DateTimeFormat对象的格式化选项。 294 295**系统能力**:SystemCapability.Global.I18n 296 297**返回值:** 298 299| 类型 | 说明 | 300| ------------------------------------ | ----------------------------- | 301| [DateTimeOptions](#datetimeoptions9) | DateTimeFormat 对象的格式化选项。 | 302 303**示例:** 304 ```js 305 let datefmt = new Intl.DateTimeFormat("en-GB", { dateStyle: 'full', timeStyle: 'medium' }); 306 // 返回DateTimeFormat对象的配置项 307 let options = datefmt.resolvedOptions(); 308 let dateStyle = options.dateStyle; // dateStyle = "full" 309 let timeStyle = options.timeStyle; // timeStyle = "medium" 310 ``` 311 312 313## DateTimeOptions<sup>9+</sup> 314 315表示时间日期格式化选项。 316 317**系统能力**:SystemCapability.Global.I18n 318 319| 名称 | 类型 | 可读 | 可写 | 说明 | 320| --------------- | ------- | ---- | ---- | ---------------------------------------- | 321| locale | string | 是 | 否 | 区域参数, 如:zh-Hans-CN。 | 322| dateStyle | string | 是 | 是 | 日期显示格式,取值包括:"long", "short", "medium", "full"。 | 323| timeStyle | string | 是 | 是 | 时间显示格式,取值包括:"long", "short", "medium", "full"。 | 324| hourCycle | string | 是 | 是 | 时制格式,取值包括:"h11", "h12", "h23", "h24"。 | 325| timeZone | string | 是 | 是 | 使用的时区(合法的IANA时区ID)。 | 326| numberingSystem | string | 是 | 是 | 数字系统,取值包括:"adlm", "ahom", "arab", "arabext", "bali", "beng", "bhks", "brah", "cakm", "cham", "deva", "diak", "fullwide", "gong", "gonm", "gujr", "guru", "hanidec", "hmng", "hmnp", "java", "kali", "khmr", "knda", "lana", "lanatham", "laoo", "latn", "lepc", "limb", "mathbold", "mathdbl", "mathmono", "mathsanb", "mathsans", "mlym", "modi", "mong", "mroo", "mtei", "mymr", "mymrshan", "mymrtlng", "newa", "nkoo", "olck", "orya", "osma", "rohg", "saur", "segment", "shrd", "sind", "sinh", "sora", "sund", "takr", "talu", "tamldec", "telu", "thai", "tibt", "tirh", "vaii", "wara", "wcho"。 | 327| hour12 | boolean | 是 | 是 | 是否使用12小时制。 | 328| weekday | string | 是 | 是 | 工作日的显示格式,取值包括:"long", "short", "narrow"。 | 329| era | string | 是 | 是 | 时代的显示格式,取值包括:"long", "short", "narrow"。 | 330| year | string | 是 | 是 | 年份的显示格式,取值包括:"numeric", "2-digit"。 | 331| month | string | 是 | 是 | 月份的显示格式,取值包括:"numeric", "2-digit", "long", "short", "narrow"。 | 332| day | string | 是 | 是 | 日期的显示格式,取值包括:"numeric", "2-digit"。 | 333| hour | string | 是 | 是 | 小时的显示格式,取值包括:"numeric", "2-digit"。 | 334| minute | string | 是 | 是 | 分钟的显示格式,取值包括:"numeric", "2-digit"。 | 335| second | string | 是 | 是 | 秒钟的显示格式,取值包括:"numeric", "2-digit"。 | 336| timeZoneName | string | 是 | 是 | 时区名称的本地化表示。 | 337| dayPeriod | string | 是 | 是 | 时段的显示格式,取值包括:"long", "short", "narrow"。 | 338| localeMatcher | string | 是 | 是 | 要使用的区域匹配算法,取值包括:"lookup", "best fit"。 | 339| formatMatcher | string | 是 | 是 | 要使用的格式匹配算法,取值包括:"basic", "best fit"。 | 340 341 342## NumberFormat 343 344 345### constructor<sup>8+</sup> 346 347constructor() 348 349创建数字格式化对象。 350 351**系统能力**:SystemCapability.Global.I18n 352 353**示例:** 354 ```js 355 // 使用系统当前locale创建NumberFormat对象 356 let numfmt = new Intl.NumberFormat(); 357 ``` 358 359 360### constructor 361 362constructor(locale: string | Array<string>, options?: NumberOptions) 363 364创建数字格式化对象。 365 366**系统能力**:SystemCapability.Global.I18n 367 368**参数:** 369 370| 参数名 | 类型 | 必填 | 说明 | 371| -------------------- | -------------------------------- | ---- | ---------------------------- | 372| locale | string \| Array<string> | 是 | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 | 373| options<sup>9+</sup> | [NumberOptions](#numberoptions9) | 否 | 用于创建数字格式化的选项。 | 374 375**示例:** 376 ```js 377 // 使用 en-GB locale创建NumberFormat对象,style设置为decimal,notation设置为scientific 378 let numfmt = new Intl.NumberFormat("en-GB", {style:'decimal', notation:"scientific"}); 379 ``` 380 381 382### format 383 384format(number: number): string; 385 386格式化数字字符串。 387 388**系统能力**:SystemCapability.Global.I18n 389 390**参数:** 391 392| 参数名 | 类型 | 必填 | 说明 | 393| ------ | ------ | ---- | ---- | 394| number | number | 是 | 数字对象 | 395 396**返回值:** 397 398| 类型 | 说明 | 399| ------ | ---------- | 400| string | 格式化后的数字字符串 | 401 402 403**示例:** 404 ```js 405 // 使用 ["en-GB", "zh"] locale列表创建NumberFormat对象,因为en-GB为合法LocaleID,因此使用en-GB创建NumberFormat对象 406 let numfmt = new Intl.NumberFormat(["en-GB", "zh"], {style:'decimal', notation:"scientific"}); 407 let formattedNumber = numfmt.format(1223); // formattedNumber = 1.223E3 408 ``` 409 410 411### resolvedOptions 412 413resolvedOptions(): NumberOptions 414 415获取NumberFormat 对象的格式化选项。 416 417**系统能力**:SystemCapability.Global.I18n 418 419**返回值:** 420 421| 类型 | 说明 | 422| -------------------------------- | --------------------------- | 423| [NumberOptions](#numberoptions9) | NumberFormat 对象的格式化选项。 | 424 425 426**示例:** 427 ```js 428 let numfmt = new Intl.NumberFormat(["en-GB", "zh"], {style:'decimal', notation:"scientific"}); 429 // 获取NumberFormat对象配置项 430 let options = numfmt.resolvedOptions(); 431 let style = options.style; // style = decimal 432 let notation = options.notation; // notation = scientific 433 ``` 434 435 436## NumberOptions<sup>9+</sup> 437 438表示设备支持的能力。 439 440**系统能力**:SystemCapability.Global.I18n 441 442| 名称 | 类型 | 可读 | 可写 | 说明 | 443| ------------------------ | ------- | ---- | ---- | ---------------------------------------- | 444| locale | string | 是 | 否 | 区域参数, 如:"zh-Hans-CN"。 | 445| currency | string | 是 | 是 | 货币单位, 如:"EUR","CNY","USD"等。 | 446| currencySign | string | 是 | 是 | 货币单位的符号显示,取值包括: "symbol","narrowSymbol","code","name" 。 | 447| currencyDisplay | string | 是 | 是 | 货币的显示方式,取值包括:"symbol", "narrowSymbol", "code", "name"。 | 448| unit | string | 是 | 是 | 单位名称,如:"meter","inch",“hectare”等。 | 449| unitDisplay | string | 是 | 是 | 单位的显示格式,取值包括:"long", "short", "narrow"。 | 450| unitUsage | string | 是 | 是 | 单位的使用场景,取值包括:"default", "area-land-agricult", "area-land-commercl", "area-land-residntl", "length-person", "length-person-small", "length-rainfall", "length-road", "length-road-small", "length-snowfall", "length-vehicle", "length-visiblty", "length-visiblty-small", "length-person-informal", "length-person-small-informal", "length-road-informal", "speed-road-travel", "speed-wind", "temperature-person", "temperature-weather", "volume-vehicle-fuel"。 | 451| signDisplay | string | 是 | 是 | 数字符号的显示格式,取值包括:"auto", "never", "always", "expectZero"。 | 452| compactDisplay | string | 是 | 是 | 紧凑型的显示格式,取值包括:"long", "short"。 | 453| notation | string | 是 | 是 | 数字的格式化规格,取值包括:"standard", "scientific", "engineering", "compact"。 | 454| localeMatcher | string | 是 | 是 | 要使用的区域匹配算法,取值包括:"lookup", "best fit"。 | 455| style | string | 是 | 是 | 数字的显示格式,取值包括:"decimal", "currency", "percent", "unit"。 | 456| numberingSystem | string | 是 | 是 | 数字系统,取值包括:"adlm", "ahom", "arab", "arabext", "bali", "beng", "bhks", "brah", "cakm", "cham", "deva", "diak", "fullwide", "gong", "gonm", "gujr", "guru", "hanidec", "hmng", "hmnp", "java", "kali", "khmr", "knda", "lana", "lanatham", "laoo", "latn", "lepc", "limb", "mathbold", "mathdbl", "mathmono", "mathsanb", "mathsans", "mlym", "modi", "mong", "mroo", "mtei", "mymr", "mymrshan", "mymrtlng", "newa", "nkoo", "olck", "orya", "osma", "rohg", "saur", "segment", "shrd", "sind", "sinh", "sora", "sund", "takr", "talu", "tamldec", "telu", "thai", "tibt", "tirh", "vaii", "wara", "wcho"。 | 457| useGrouping | boolean | 是 | 是 | 是否分组显示。 | 458| minimumIntegerDigits | number | 是 | 是 | 表示要使用的最小整数位数,取值范围:1~21。 | 459| minimumFractionDigits | number | 是 | 是 | 表示要使用的最小分数位数,取值范围:0~20。 | 460| maximumFractionDigits | number | 是 | 是 | 表示要使用的最大分数位数,取值范围:1~21。 | 461| minimumSignificantDigits | number | 是 | 是 | 表示要使用的最低有效位数,取值范围:1~21。 | 462| maximumSignificantDigits | number | 是 | 是 | 表示要使用的最大有效位数,取值范围:1~21。 | 463 464 465## Collator<sup>8+</sup> 466 467 468### constructor<sup>8+</sup> 469 470constructor() 471 472创建排序对象。 473 474**系统能力**:SystemCapability.Global.I18n 475 476**示例:** 477 ```js 478 // 使用系统locale创建Collator对象 479 let collator = new Intl.Collator(); 480 ``` 481 482 483### constructor<sup>8+</sup> 484 485constructor(locale: string | Array<string>, options?: CollatorOptions) 486 487创建排序对象。 488 489**系统能力**:SystemCapability.Global.I18n 490 491**参数:** 492 493| 参数名 | 类型 | 必填 | 说明 | 494| -------------------- | ------------------------------------ | ---- | ---------------------------- | 495| locale | string \| Array<string> | 是 | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 | 496| options<sup>9+</sup> | [CollatorOptions](#collatoroptions9) | 否 | 用于创建排序对象的选项。 | 497 498**示例:** 499 ```js 500 // 使用 zh-CN locale创建Collator对象,localeMatcher设置为lookup,usage设置为sort 501 let collator = new Intl.Collator("zh-CN", {localeMatcher: "lookup", usage: "sort"}); 502 ``` 503 504 505### compare<sup>8+</sup> 506 507compare(first: string, second: string): number 508 509依据Collator的排序策略对两个字符串进行比较。 510 511**系统能力**:SystemCapability.Global.I18n 512 513**参数:** 514 515| 参数名 | 类型 | 必填 | 说明 | 516| ------ | ------ | ---- | ------------ | 517| first | string | 是 | 进行比较第一个字符串。 | 518| second | string | 是 | 进行比较的第二个字符串。 | 519 520**返回值:** 521 522| 类型 | 说明 | 523| ------ | ---------------------------------------- | 524| number | 比较结果。当number为负数,表示first排序在second之前;当number为0,表示first与second排序相同;当number为正数,表示first排序在second之后。 | 525 526**示例:** 527 ```js 528 // 使用en-GB locale创建Collator对象 529 let collator = new Intl.Collator("en-GB"); 530 // 比较 "first" 和 "second" 的先后顺序 531 let compareResult = collator.compare("first", "second"); // compareResult = -1 532 ``` 533 534 535### resolvedOptions<sup>8+</sup> 536 537resolvedOptions(): CollatorOptions 538 539返回Collator对象的属性。 540 541**系统能力**:SystemCapability.Global.I18n 542 543**返回值:** 544 545| 类型 | 说明 | 546| ------------------------------------ | ----------------- | 547| [CollatorOptions](#collatoroptions9) | 返回的Collator对象的属性。 | 548 549**示例:** 550 ```js 551 let collator = new Intl.Collator("zh-Hans", { usage: 'sort', ignorePunctuation: true }); 552 // 获取Collator对象的配置项 553 let options = collator.resolvedOptions(); 554 let usage = options.usage; // usage = "sort" 555 let ignorePunctuation = options.ignorePunctuation; // ignorePunctuation = true 556 ``` 557 558 559## CollatorOptions<sup>9+</sup> 560 561表示Collator可设置的属性。 562 563**系统能力**:SystemCapability.Global.I18n 564 565| 名称 | 类型 | 可读 | 可写 | 说明 | 566| ----------------- | ------- | ---- | ---- | ---------------------------------------- | 567| localeMatcher | string | 是 | 是 | locale匹配算法,取值范围:"best fit", "lookup"。 | 568| usage | string | 是 | 是 | 比较的用途,取值范围:"sort", "search"。 | 569| sensitivity | string | 是 | 是 | 表示字符串中的哪些差异会导致非零结果值,取值范围:"base", "accent", "case", "letiant"。 | 570| ignorePunctuation | boolean | 是 | 是 | 表示是否忽略标点符号,取值范围:true, false。 | 571| collation | string | 是 | 是 | 排序规则,取值范围:"big5han", "compat", "dict", "direct", "ducet", "eor", "gb2312", "phonebk", "phonetic", "pinyin", "reformed", "searchjl", "stroke", "trad", "unihan", "zhuyin"。 | 572| numeric | boolean | 是 | 是 | 是否使用数字排序,取值范围:true, false。 | 573| caseFirst | string | 是 | 是 | 表示大写、小写的排序顺序,取值范围:"upper", "lower", "false"。 | 574 575 576## PluralRules<sup>8+</sup> 577 578 579### constructor<sup>8+</sup> 580 581constructor() 582 583创建单复数对象来计算数字的单复数类别。 584 585**系统能力**:SystemCapability.Global.I18n 586 587**示例:** 588 ```js 589 // 使用系统locale创建PluralRules对象 590 let pluralRules = new Intl.PluralRules(); 591 ``` 592 593 594### constructor<sup>8+</sup> 595 596constructor(locale: string | Array<string>, options?: PluralRulesOptions) 597 598创建单复数对象来计算数字的单复数类别。 599 600**系统能力**:SystemCapability.Global.I18n 601 602**参数:** 603 604| 参数名 | 类型 | 必填 | 说明 | 605| -------------------- | ---------------------------------------- | ---- | ---------------------------- | 606| locale | string \| Array<string> | 是 | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 | 607| options<sup>9+</sup> | [PluralRulesOptions](#pluralrulesoptions9) | 否 | 用于创建单复数对象的选项。 | 608 609**示例:** 610 ```js 611 // 使用 zh-CN locale创建PluralRules对象,localeMatcher设置为lookup,type设置为cardinal 612 let pluralRules= new Intl.PluralRules("zh-CN", {"localeMatcher": "lookup", "type": "cardinal"}); 613 ``` 614 615 616### select<sup>8+</sup> 617 618select(n: number): string 619 620返回一个字符串表示该数字的单复数类别。 621 622**系统能力**:SystemCapability.Global.I18n 623 624**参数:** 625 626| 参数名 | 类型 | 必填 | 说明 | 627| ---- | ------ | ---- | ------------ | 628| n | number | 是 | 待获取单复数类别的数字。 | 629 630**返回值:** 631 632| 类型 | 说明 | 633| ------ | ---------------------------------------- | 634| string | 单复数类别,取值包括:"zero","one","two", "few", "many", "others"。 | 635 636**示例:** 637 ```js 638 // 使用 zh-Hans locale创建PluralRules对象 639 let zhPluralRules = new Intl.PluralRules("zh-Hans"); 640 // 计算 zh-Hans locale中数字1对应的单复数类别 641 let plural = zhPluralRules.select(1); // plural = other 642 643 // 使用 en-US locale创建PluralRules对象 644 let enPluralRules = new Intl.PluralRules("en-US"); 645 // 计算 en-US locale中数字1对应的单复数类别 646 plural = enPluralRules.select(1); // plural = one 647 ``` 648 649 650## PluralRulesOptions<sup>9+</sup> 651 652表示PluralRules对象可设置的属性。 653 654**系统能力**:SystemCapability.Global.I18n 655 656| 名称 | 类型 | 可读 | 可写 | 说明 | 657| ------------------------ | ------ | ---- | ---- | ---------------------------------------- | 658| localeMatcher | string | 是 | 是 | locale匹配算法,取值包括:"best fit", "lookup"。 | 659| type | string | 是 | 是 | 排序的类型,取值包括:"cardinal", "ordinal"。 | 660| minimumIntegerDigits | number | 是 | 是 | 表示要使用的最小整数位数,取值范围:1~21。 | 661| minimumFractionDigits | number | 是 | 是 | 表示要使用的最小分数位数,取值范围:0~20。 | 662| maximumFractionDigits | number | 是 | 是 | 表示要使用的最大分数位数,取值范围:1~21。 | 663| minimumSignificantDigits | number | 是 | 是 | 表示要使用的最低有效位数,取值范围:1~21。 | 664| maximumSignificantDigits | number | 是 | 是 | 表示要使用的最大有效位数,取值范围:1~21。 | 665 666 667## RelativeTimeFormat<sup>8+</sup> 668 669 670### constructor<sup>8+</sup> 671 672constructor() 673 674创建相对时间格式化对象。 675 676**系统能力**:SystemCapability.Global.I18n 677 678**示例:** 679 ```js 680 // 使用系统locale创建RelativeTimeFormat对象 681 let relativetimefmt = new Intl.RelativeTimeFormat(); 682 ``` 683 684 685### constructor<sup>8+</sup> 686 687constructor(locale: string | Array<string>, options?: RelativeTimeFormatInputOptions) 688 689创建相对时间格式化对象。 690 691**系统能力**:SystemCapability.Global.I18n 692 693**参数:** 694 695| 参数名 | 类型 | 必填 | 说明 | 696| -------------------- | ---------------------------------------- | ---- | ---------------------------- | 697| locale | string \| Array<string> | 是 | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 | 698| options<sup>9+</sup> | [RelativeTimeFormatInputOptions](#relativetimeformatinputoptions9) | 否 | 用于创建相对时间格式化对象的选项。 | 699 700**示例:** 701 ```js 702 // 使用 zh-CN locale创建RelativeTimeFormat对象,localeMatcher设置为lookup,numeric设置为always,style设置为long 703 let relativeTimeFormat = new Intl.RelativeTimeFormat("zh-CN", {"localeMatcher": "lookup", "numeric": "always", "style": "long"}); 704 ``` 705 706 707### format<sup>8+</sup> 708 709format(value: number, unit: string): string 710 711依据locale和格式化选项,对value和unit进行格式化。 712 713**系统能力**:SystemCapability.Global.I18n 714 715**参数:** 716 717| 参数名 | 类型 | 必填 | 说明 | 718| ----- | ------ | ---- | ---------------------------------------- | 719| value | number | 是 | 相对时间格式化的数值。 | 720| unit | string | 是 | 相对时间格式化的单位,取值包括:"year", "quarter", "month", "week", "day", "hour", "minute", "second"。 | 721 722**返回值:** 723 724| 类型 | 说明 | 725| ------ | ---------- | 726| string | 格式化后的相对时间。 | 727 728**示例:** 729 ```js 730 // 使用 zh-CN locale创建RelativeTimeFormat对象 731 let relativetimefmt = new Intl.RelativeTimeFormat("zh-CN"); 732 // 计算 zh-CN locale中数字3,单位quarter的本地化表示 733 let formatResult = relativetimefmt.format(3, "quarter"); // formatResult = "3个季度后" 734 ``` 735 736 737### formatToParts<sup>8+</sup> 738 739formatToParts(value: number, unit: string): Array<object> 740 741返回一个对象数组,表示可用于自定义区域设置格式的相对时间格式。 742 743**系统能力**:SystemCapability.Global.I18n 744 745**参数:** 746 747| 参数名 | 类型 | 必填 | 说明 | 748| ----- | ------ | ---- | ---------------------------------------- | 749| value | number | 是 | 相对时间格式化的数值。 | 750| unit | string | 是 | 相对时间格式化的单位,取值包括:"year", "quarter", "month", "week", "day", "hour", "minute", "second"。 | 751 752**返回值:** 753 754| 类型 | 说明 | 755| ------------------- | --------------------------- | 756| Array<object> | 返回可用于自定义区域设置格式的相对时间格式的对象数组。 | 757 758**示例:** 759 ```js 760 // 使用 en locale创建RelativeTimeFormat对象,numeric设置为auto 761 let relativetimefmt = new Intl.RelativeTimeFormat("en", {"numeric": "auto"}); 762 let parts = relativetimefmt.formatToParts(10, "seconds"); // parts = [ {type: "literal", value: "in"}, {type: "integer", value: 10, unit: "second"}, {type: "literal", value: "seconds"} ] 763 ``` 764 765 766### resolvedOptions<sup>8+</sup> 767 768resolvedOptions(): RelativeTimeFormatResolvedOptions 769 770获取RelativeTimeFormat对象的格式化选项。 771 772**系统能力**:SystemCapability.Global.I18n 773 774**返回值:** 775 776| 类型 | 说明 | 777| ---------------------------------------- | --------------------------------- | 778| [RelativeTimeFormatResolvedOptions](#relativetimeformatresolvedoptions8) | RelativeTimeFormat 对象的格式化选项。 | 779 780**示例:** 781 ```js 782 // 使用 en-GB locale创建RelativeTimeFormat对象 783 let relativetimefmt= new Intl.RelativeTimeFormat("en-GB", { style: "short" }); 784 // 获取RelativeTimeFormat对象配置项 785 let options = relativetimefmt.resolvedOptions(); 786 let style = options.style; // style = "short" 787 ``` 788 789 790## RelativeTimeFormatInputOptions<sup>9+</sup> 791 792表示RelativeTimeFormat对象可设置的属性。 793 794**系统能力**:SystemCapability.Global.I18n 795 796| 名称 | 类型 | 可读 | 可写 | 说明 | 797| ------------- | ------ | ---- | ---- | ---------------------------------------- | 798| localeMatcher | string | 是 | 是 | locale匹配算法,取值包括:"best fit", "lookup"。 | 799| numeric | string | 是 | 是 | 输出消息的格式,取值包括:"always", "auto"。 | 800| style | string | 是 | 是 | 国际化消息的长度,取值包括:"long", "short", "narrow"。 | 801 802 803## RelativeTimeFormatResolvedOptions<sup>8+</sup> 804 805表示RelativeTimeFormat对象可设置的属性。 806 807**系统能力**:SystemCapability.Global.I18n 808 809| 名称 | 类型 | 可读 | 可写 | 说明 | 810| --------------- | ------ | ---- | ---- | ---------------------------------------- | 811| locale | string | 是 | 是 | 包含区域设置信息的字符串,包括语言以及可选的脚本和区域。 | 812| numeric | string | 是 | 是 | 输出消息的格式,取值包括:"always", "auto"。 | 813| style | string | 是 | 是 | 国际化消息的长度,取值包括:"long", "short", "narrow"。 | 814| numberingSystem | string | 是 | 是 | 使用的数字系统。 | 815