JavaScript toLocaleString 方法
最后修改于 2025 年 4 月 4 日
在本文中,我们将展示如何使用 JavaScript 中的 toLocaleString
方法格式化数字和日期。
JavaScript 中的本地化
toLocaleString
方法使用特定于区域设置的约定将数字或日期转换为字符串。它提供了一种根据用户的语言和区域设置格式化数据的方式。
此方法在 JavaScript 中的 Number、Date 和 Array 对象上可用。格式化规则根据主机的当前区域设置或在 options 参数中指定的区域设置而有所不同。
对于数字,它处理小数点分隔符、数字分组和货币格式。对于日期,它根据日期和时间的表示方式的本地约定进行格式化。此方法对于国际化应用程序至关重要。
基本数字格式化
以下示例演示了使用 toLocaleString
进行基本数字格式化。
const number = 123456.789; console.log(number.toLocaleString()); // Default locale console.log(number.toLocaleString('de-DE')); // German format console.log(number.toLocaleString('ar-EG')); // Arabic format
我们使用不同的区域设置格式化相同的数字。该方法会根据区域设置约定自动调整小数点、分组分隔符和数字表示形式。
$ node main.js "123,456.789" (en-US) "123.456,789" (de-DE) "١٢٣٬٤٥٦٫٧٨٩" (ar-EG)
货币格式化
toLocaleString
方法可以将数字格式化为货币值。
const price = 1234.56; console.log(price.toLocaleString('en-US', { style: 'currency', currency: 'USD' })); console.log(price.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' }));
我们为不同的区域设置将数字格式化为货币值。 style 选项指定货币格式,而 currency 选项定义要使用的货币。
$ node main.js "$1,234.56" (en-US) "¥1,235" (ja-JP)
日期格式化
toLocaleString
方法可以根据区域设置约定格式化 Date 对象。
const date = new Date(); console.log(date.toLocaleString()); // Default locale console.log(date.toLocaleString('en-GB')); // British format console.log(date.toLocaleString('ko-KR')); // Korean format
我们使用不同的区域设置格式化当前日期和时间。该方法根据区域约定调整日期顺序、分隔符和时间格式。
$ node main.js "4/4/2025, 3:14:07 PM" (en-US) "04/04/2025, 15:14:07" (en-GB) "2025. 4. 4. 오후 3:14:07" (ko-KR)
自定义日期格式化
我们可以使用 toLocaleString
和 options 自定义日期格式化。
const date = new Date(); const options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }; console.log(date.toLocaleString('de-DE', options)); console.log(date.toLocaleString('fr-FR', options));
我们指定格式化选项来控制日期的显示方式。 options 对象允许我们选择要包含哪些组件及其格式样式。
$ node main.js "Freitag, 4. April 2025" (de-DE) "vendredi 4 avril 2025" (fr-FR)
数组本地化
toLocaleString
方法也可以在数组上调用以格式化所有元素。
const mixedArray = [12345.67, new Date(), 'plain string']; console.log(mixedArray.toLocaleString('en-US')); console.log(mixedArray.toLocaleString('es-ES'));
在数组上调用时,toLocaleString
会在每个元素上调用该方法。数字和日期将根据区域设置进行格式化,而字符串将保持不变。
$ node main.js "12,345.67,4/4/2025, 3:14:07 PM,plain string" (en-US) "12.345,67,4/4/2025 15:14:07,plain string" (es-ES)
来源
在本文中,我们演示了如何使用 toLocaleString() 方法根据区域设置约定格式化 JavaScript 中的数字和日期。
作者
列出 所有 JS 数组函数。