概述

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 对象。

(adsbygoogle = window.adsbygoogle || []).push({});