Skip to content

toLocaleString 的使用

使用 toLocaleString 来国际化日期或者数字格式

Date.prototype.toLocaleString()

不带参数

根据时区和语言环境返回

js
const date = new Date('2019-12-06 11:35')

date.toLocaleString()
// "2019/12/6 上午11:35:00"

可选参数 locales

是一个 BCP 47 语言标记的字符串,或者是一个包括多个语言标记的数组 参考

通过 navigator.language 可以获取浏览器的默认设置

js
const date = new Date('2019-12-06 11:35')

date.toLocaleString('zh-CN')
// "2019/12/6 上午11:35:00"

date.toLocaleString('en-US')
// "12/6/2019, 11:35:00 AM"

date.toLocaleString('ar-EG')
// "٦‏/١٢‏/٢٠١٩ ١١:٣٥:٠٠ ص"

date.toLocaleString('ja-JP-u-ca-japanese')
// "1/12/6 11:35:00"

可选参数 options

dateStyle, timeStyle

  • full, long, medium, short
js
const date = new Date('2019-12-06 11:35')

// dateStyle
// full
date.toLocaleString('zh-CN', { dateStyle: 'full' })
// "2019年12月6日星期五"

date.toLocaleString('en-US', { dateStyle: 'full' })
// "Friday, December 6, 2019"

// long
date.toLocaleString('zh-CN', { dateStyle: 'long' })
// "2019年12月6日"

date.toLocaleString('en-US', { dateStyle: 'long' })
// "December 6, 2019"

// medium
date.toLocaleString('zh-CN', { dateStyle: 'medium' })
// "2019年12月6日"

date.toLocaleString('en-US', { dateStyle: 'medium' })
// "Dec 6, 2019"

// short
date.toLocaleString('zh-CN', { dateStyle: 'short' })
// "2019/12/6"

date.toLocaleString('en-US', { dateStyle: 'short' })
// "12/6/19"

// timeStyle
// full
date.toLocaleString('zh-CN', { timeStyle: 'full' })
// "中国标准时间 上午11:35:00"

date.toLocaleString('en-US', { timeStyle: 'full' })
// "11:35:00 AM China Standard Time"

// long
date.toLocaleString('zh-CN', { timeStyle: 'long' })
// "GMT+8 上午11:35:00"

date.toLocaleString('en-US', { timeStyle: 'long' })
// "11:35:00 AM GMT+8"

// medium
date.toLocaleString('zh-CN', { timeStyle: 'medium' })
// "上午11:35:00"

date.toLocaleString('en-US', { timeStyle: 'medium' })
// "11:35:00 AM"

// short
date.toLocaleString('zh-CN', { timeStyle: 'short' })
// "上午11:35"

date.toLocaleString('en-US', { timeStyle: 'short' })
// "11:35 AM"

timeZone

js
const date = new Date('2019-12-06 11:35')

date.toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' })
// "2019/12/6 上午11:35:00"

date.toLocaleString('zh-CN', { timeZone: 'America/New_York' })
// "2019/12/5 下午10:35:00"

timeZoneName

  • long, short
js
const date = new Date('2019-12-06 11:35')

date.toLocaleString('zh-CN', { timeZoneName: 'long' })
// "2019/12/6 中国标准时间 上午11:35:00"

date.toLocaleString('zh-CN', { timeZoneName: 'short' })
// "2019/12/6 GMT+8 上午11:35:00"

hour12

js
const date = new Date('2019-12-06 11:35')

date.toLocaleString('zh-CN', { hour12: true })
// "2019/12/6 上午11:35:00"

date.toLocaleString('zh-CN', { hour12: false })
// "2019/12/6 11:35:00"

hourCycle

  • h11, h12, h23, h24
js
const date = new Date('2019-12-06 11:35')

date.toLocaleString('zh-CN', { hourCycle: 'h12' })
// "2019/12/6 上午11:35:00"

date.toLocaleString('zh-CN', { hourCycle: 'h23' })
// "2019/12/6 11:35:00"

era, weekday

  • long, short, narrow
js
const date = new Date('2019-12-06 11:35')

date.toLocaleString('en-US', { era: 'long' })
// "12 6, 2019 Anno Domini, 11:35:00 AM"

date.toLocaleString('en-US', { era: 'short' })
// "12 6, 2019 AD, 11:35:00 AM"

date.toLocaleString('en-US', { era: 'narrow' })
// "12 6, 2019 A, 11:35:00 AM"

date.toLocaleString('zh-CN', { weekday: 'long' })
// "星期五"

date.toLocaleString('zh-CN', { weekday: 'short' })
// "周五"

date.toLocaleString('zh-CN', { weekday: 'narrow' })
// "五"

year, day, hour, minute, second

  • numeric, 2-digit
js
const date = new Date('2019-12-06 11:35')

date.toLocaleString('zh-CN', { year: 'numeric' })
// "2019年"

date.toLocaleString('zh-CN', { year: '2-digit' })
// "19年"

date.toLocaleString('zh-CN', { day: 'numeric' })
// "6日"

date.toLocaleString('zh-CN', { day: '2-digit' })
// "06日"

month

  • numeric, 2-digit, long, short, narrow
js
const date = new Date('2019-12-06 11:35')

date.toLocaleString('en-US', { month: 'numeric' })
// "12"

date.toLocaleString('en-US', { month: '2-digit' })
// "12"

date.toLocaleString('en-US', { month: 'long' })
// "December"

date.toLocaleString('en-US', { month: 'short' })
// "Dec"

date.toLocaleString('en-US', { month: 'narrow' })
// "D"

Number.prototype.toLocaleString()

locales

同上

js
const number = 1024.1234

number.toLocaleString('zh-CN')
// "1,024.123"

number.toLocaleString('zh-Hans-CN-u-nu-hanidec')
// "一,〇二四.一二三"

number.toLocaleString('de-DE')
// "1.024,123"

number.toLocaleString('ar-EG')
// "١٬٠٢٤٫١٢٣"

options

style

  • decimal, currency, percent
js
const number = 1024

number.toLocaleString('zh-CN', { style: 'decimal' })
// "1,024"

number.toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' })
// "¥1,024.00"

number.toLocaleString('zh-CN', { style: 'percent' })
// "102,400%"

currency

stylecurrency 时,需要指定货币格式符号 查考

currencyDisplay

  • symbol, code, name
js
const number = 1024

number.toLocaleString('zh-CN', { style: 'currency', currency: 'CNY', currencyDisplay: 'symbol' })
// "¥1,024.00"

number.toLocaleString('zh-CN', { style: 'currency', currency: 'CNY', currencyDisplay: 'code' })
// "CNY 1,024.00"

number.toLocaleString('zh-CN', { style: 'currency', currency: 'CNY', currencyDisplay: 'name' })
// "1,024.00人民币"

useGrouping

js
const number = 1024

number.toLocaleString('zh-CN', { useGrouping: true })
// "1,024"

number.toLocaleString('zh-CN', { useGrouping: false })
// "1024"

minimumIntegerDigits

使用的整数数字的最小数目(默认 1) 1 ~ 21

minimumFractionDigits

使用的小数位数的最小数目 0 ~ 20

maximumFractionDigits

使用的小数位数的最大数目 0 ~ 20

js
const number = 1024.1234

number.toLocaleString('zh-CN', { minimumIntegerDigits: 5, minimumFractionDigits: 0, maximumFractionDigits: 2 })
// "01,024.12"

minimumSignificantDigits

使用的有效数字的最小数目(默认 1) 1 ~ 21

maximumSignificantDigits

使用的有效数字的最大数量(默认 minimumsignificantdigits) 1 ~ 21

js
const number = 1024.1234

number.toLocaleString('zh-CN', { minimumSignificantDigits: 3, maximumSignificantDigits: 5 })
// "1,024.1"

创建时间:

最近更新: