Intl
是 JavaScript 中用于处理国际化的内置对象,提供了日期、时间、数字、货币等格式化的功能。它基于 ECMAScript 国际化 API,支持多语言和地区设置,能够帮助我们轻松实现本地化需求。本文将详细介绍 Intl
的核心功能、使用场景以及一些需要注意的事项。
Intl
的核心功能
Intl
提供了多个构造函数,用于处理不同的国际化需求:
Intl.DateTimeFormat
:用于格式化日期和时间。Intl.NumberFormat
:用于格式化数字、货币和百分比。Intl.Collator
:用于字符串排序和比较。Intl.ListFormat
:用于格式化列表(如 “A, B, and C”)。Intl.RelativeTimeFormat
:用于格式化相对时间(如 “2 days ago”)。
使用场景与示例
格式化日期和时间(Intl.DateTimeFormat
)
场景:我们需要根据用户的语言和地区显示本地化的日期和时间。
const date = new Date();
const formatter = new Intl.DateTimeFormat('zh-CN', {
year: 'numeric',
month: 'long',
day: 'numeric',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
hour12: false
});
console.log(formatter.format(date)); // "2023年10月5日 14:30:45"
locales
参数支持多种语言和地区,比如'en-US'
、'ja-JP'
。options
参数可以灵活配置日期和时间的显示格式,比如是否使用 12 小时制。
格式化数字和货币(Intl.NumberFormat
)
场景:我们需要根据用户的地区显示本地化的数字和货币格式。