Timezone
Zona horaria añade las APIs dayjs.tz
.tz
.tz.guess
.tz.setDefault
para analizar o mostrar entre zonas horarias.
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
Adivinando la zona horaria del usuario
dayjs.tz.guess();
Parseando en una zona horaria
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
Convirtiendo a una zona horaria
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
Establecer / restablecer la zona horaria predeterminada (utilizada por 'tz')
// Setting the default timezone
dayjs.tz.setDefault("America/New_York");
// Resetting the default timezone to the system timezone
dayjs.tz.setDefault();
Diferencias con moment
Usar la zona horaria por defecto hace que moment(dateValue)
utilice esta zona horaria (pero moment.tz(dateValue, timezone)
todavía requiere el segundo parámetro).
Pero dayjs(dateValue)
siempre utiliza la zona horaria local, incluso si dayjs.tz.setDefault
es usado; solo dayjs.tz(dateValue)
(sin segundo parámetro) utiliza la zona horaria por defecto.