Timezone
Timezone aggiunge le API dayjs.tz
, .tz
, .tz.guess
e .tz.setDefault
per l'analisi e la visualizzazione di date e orari in diversi fusi orari.
var utc = require('dayjs/plugin/utc');
// import utc from 'dayjs/plugin/utc' // ES 2015
var timezone = require('dayjs/plugin/timezone'); // Dipende dal plugin UTC
// 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); // Assume 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); // L'orario esistente viene trattato come 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); // L'orario esistente viene trattato come ora locale
//dayjsAmericaKeep.toISOString() -> 2014-06-01T16:00:00.000Z
//dayjsAmericaKeep.format('YYYY-MM-DDTHH:mm:ss') -> 2014-06-01T12:00:00
Rilevamento del fuso orario dell'utente
dayjs.tz.guess();
Parsing con un fuso orario specifico
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
Conversione a un fuso orario specifico
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
Imposta/reimposta il fuso orario predefinito (utilizzato da tz
)
// Imposta il fuso orario predefinito
dayjs.tz.setDefault('America/New_York');
// Reimposta il fuso orario predefinito al fuso orario del sistema
dayjs.tz.setDefault();
Differenze rispetto a Moment
Quando si imposta un fuso orario predefinito, moment(dateValue)
lo utilizzerà automaticamente (mentre moment.tz(dateValue, timezone)
richiede comunque il secondo parametro).
dayjs(dateValue)
utilizza sempre il fuso orario locale, anche dopo aver impostato un fuso orario predefinito con dayjs.tz.setDefault
. Solo dayjs.tz(dateValue)
(senza il secondo parametro) utilizzerà il fuso orario predefinito.