📅  最后修改于: 2023-12-03 14:48:01.113000             🧑  作者: Mango
在Javascript中,toLocaleString()方法是用于将数字、日期和时间对象转换为本地字符串的方法。这个方法的作用是将特定的数据类型转换为用户所用的本地格式,可以用于国际化交互中。
toLocaleString
方法有一些不同的用法,主要分为以下两种:
Number.toLocaleString([locales[, options]])
: 将数字转换为包含本地化信息的字符串。Date.toLocaleString([locales[, options]])
: 将日期对象转换为包含本地化信息的字符串。locales
和 options
都是可选参数,它们影响到转换后的字符串。
其中 locales
参数指定要使用的语言/区域设置,可以是ISO语言代码,也可以是已知的区域设置标识符(“zh-CN”、“en-US”等)。如果该参数未提供,则使用默认语言。
options
参数是一个对象,包含一些用于指定输出格式的选项。这些选项在不同的toLocaleString方法的调用间具有共性,因此这里只列出几个通用的选项:
numberingSystem
:指定数字系统(如阿拉伯数字、汉字数字等)。style
:指定格式化样式(如数字、百分比等)。hour12
:指定时间是否使用12小时格式。更多选项详情,可以参考MDN文档:Number.toLocaleString() 和 Date.toLocaleString()
const num = 12345678.9;
// 使用本地默认语言格式化数字
console.log(num.toLocaleString()); // "12,345,678.9" (如在美国)
// 使用中文语言格式化数字
console.log(num.toLocaleString('zh-CN')); // "12,345,678.9"
// 使用印地语格式化数字
console.log(num.toLocaleString('hi-IN')); // "1,23,45,678.9"
// 只显示小数点后两位
console.log(num.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })); // "12,345,678.90"
// 显示百分比
console.log((num/100000000).toLocaleString(undefined, { style: 'percent' })); // "123.46%"
const now = new Date();
// 使用本地默认语言格式化日期时间
console.log(now.toLocaleString()); // "5/5/2022, 10:03:58 PM" (如在美国)
// 使用中文语言格式化日期时间
console.log(now.toLocaleString('zh-CN')); // "2022/5/5 下午10:03:58"
// 显示日期
console.log(now.toLocaleDateString()); // "5/5/2022"
// 显示时间
console.log(now.toLocaleTimeString()); // "10:03:58 PM"
// 显示24小时格式的时间
console.log(now.toLocaleTimeString(undefined, { hour12: false })); // "22:03:58"
toLocaleString
方法是Javascript本地化的重要方式之一,可以通过它将数字和日期转换为本地格式并在国际化交互中使用。在不同的应用场景中可用不同的选项来适应不同语言/区域设置以及用户习惯。感谢阅读本篇介绍,希望这对您有所帮助!