概述
Day.js 使用了 Internationalization API 来设置和使用时区。可以在以下 这些环境 中直接使用。 通过使用原生API,无需在代码包中打包含额外的时区数据。所有时区名称都可以在 IANA数据库 中查看。
对于旧环境或不支持的环境,请选用合适的 polyfill 。
在 day.js 中使用时区功能必须先配置
Timezone
插件,才能正常运行
dayjs.extend(utc)
dayjs.extend(timezone)
// 当前时区 'Europe/Berlin' (offset +01:00)
// 解析
dayjs.tz("2013-11-18 11:55:20", "Asia/Shanghai")
// 转换 (从 'Europe/Berlin' 转为 'Asia/Shanghai')
dayjs("2013-11-18 11:55:20").tz("Asia/Shanghai")
解析时区
使用给定时区解析日期时间字符串并返回 Day.js 对象实例。
dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.tz("2013-11-18T11:55:20", "Asia/Shanghai")
如果你知道输入字符串的格式,你可以用它来解析一个日期,参数与 字符串 + 格式
完全相同。
使用本功能需先配置
CustomParseFormat
插件,才能正常运行
dayjs.extend(customParseFormat)
dayjs.tz("12-25-1995", "MM-DD-YYYY", "Asia/Shanghai")
转换到对应时区
转换到对应时区并更新 UTC 偏移量,返回 Day.js 对象实例。
dayjs.extend(utc)
dayjs.extend(timezone)
// this example runs in time zone 'Europe/Berlin' (offset +01:00)
dayjs("2013-11-18T11:55:20")
dayjs("2013-11-18T11:55:20").tz("America/Toronto")
dayjs("2013-11-18T11:55:20").tz("America/Toronto", true)
当传递第二个参数为 true 时,只更新时区 (和偏移量),本地时间将保持不变。
用户当前时区
返回用户当前时区。
dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.tz.guess() // Asia/Shanghai
设置默认时区
将默认时区从本地时区变为自定义时区。
你仍然可以在指定的 dayjs
对象中自定义不同的时区。
dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.tz.setDefault("America/New_York")
// 和 dayjs.tz("2014-06-01 12:00", "America/New_York") 同样行为
dayjs.tz("2014-06-01 12:00") // 2014-06-01T12:00:00-04:00
// 使用另一个时区
dayjs.tz("2014-06-01 12:00", "Asia/Tokyo") // 2014-06-01T12:00:00+09:00
// 重置默认时区
dayjs.tz.setDefault()
注意: dayjs.tz.setDefault
不会影响现有的 dayjs
对象。