Timezone
Плагин Timezone добавляет dayjs.tz
.tz
.tz.guess
.tz.setDefault
API для парсинга или отображения временных зон.
var utc = require("dayjs/plugin/utc");
// import utc from 'dayjs/plugin/utc' // ES 2015
var timezone = require("dayjs/plugin/timezone"); // dependent on utc plugin
// import timezone from 'dayjs/plugin/timezone' // ES 2015
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')
// Установка часового пояса по умолчанию
dayjs.tz.setDefault("America/New_York");
// Сброс часового пояса по умолчанию до системного часового пояса
dayjs.tz.setDefault();
Отличия от moment
Using the default timezone makes moment(dateValue)
use this timezone (but moment.tz(dateValue, timezone)
still requires the second parameter).
But dayjs(dateValue)
always uses the local timezone, even if dayjs.tz.setDefault
is used; only dayjs.tz(dateValue)
(without second parameter) uses the default timezone.