Timezone
Timezoneプラグインは、`dayjs.tz`、`.tz`、`.tz.guess`、`.tz.setDefault` APIを追加し、タイムゾーン間の解析や表示を可能にします。
var utc = require('dayjs/plugin/utc')
var timezone = require('dayjs/plugin/timezone') // dependent on utc plugin
dayjs.extend(utc)
dayjs.extend(timezone)
const timestamp = "2014-06-01 12:00"
const tz = "America/New_York"
const dayjsLocal = dayjs(timestamp); //assumes UTC
//dayjsLocal.toISOString() -> 2014-06-01T12:00:00.000Z
//dayjsLocal.format('YYYY-MM-DDTHH:mm:ss') -> 2014-06-01T12:00:00
const dayjsAmerica = dayjsLocal.tz(tz) //existing time treated as UTC
//dayjsAmerica.toISOString() -> 2014-06-01T12:00:00.000Z
//dayjsAmerica.format('YYYY-MM-DDTHH:mm:ss') -> 2014-06-01T08:00:00
const dayjsAmericaKeep = dayjsLocal.tz(tz, true) //existing time treated as local time
//dayjsAmericaKeep.toISOString() -> 2014-06-01T16:00:00.000Z
//dayjsAmericaKeep.format('YYYY-MM-DDTHH:mm:ss') -> 2014-06-01T12:00:00
ユーザーのタイムゾーンの推測
dayjs.tz.guess()
タイムゾーンでの解析
const d1 = dayjs.tz('2013-11-18 11:55', 'Asia/Taipei')
d1.format() // => 2013-11-18T11:55:00+08:00
d1.toISOString() // => 2013-11-18T03:55:00.000Z
タイムゾーンへの変換
const d2 = dayjs.utc('2013-11-18 11:55').tz('Asia/Taipei')
d2.format() // => 2013-11-18T19:55:00+08:00
d2.toISOString() // => 2013-11-18T11:55:00.000Z
デフォルトタイムゾーンの設定/リセット('tz'で使用)
// Setting the default timezone
dayjs.tz.setDefault('America/New_York')
// Resetting the default timezone to the system timezone
dayjs.tz.setDefault()
Momentとの違い
デフォルトのタイムゾーンを使用すると、`moment(dateValue)`はこのタイムゾーンを使用します(ただし、`moment.tz(dateValue, timezone)`は依然として2番目のパラメーターが必要です)。
しかし、`dayjs(dateValue)`は、`dayjs.tz.setDefault`が使用されている場合でも、常にローカルタイムゾーンを使用します。デフォルトのタイムゾーンを使用するのは`dayjs.tz(dateValue)`(2番目のパラメーターなし)のみです。