시간대
시간대 간의 구문 분석 및 표시를 위해 dayjs.tz
, .tz
, .tz.guess
, .tz.setDefault
API를 추가합니다.
javascript
var utc = require('dayjs/plugin/utc');
// import utc from 'dayjs/plugin/utc' // ES 2015
var timezone = require('dayjs/plugin/timezone'); // 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); // 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); // 기존 시간을 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); // 기존 시간을 현지 시간으로 간주합니다.
//dayjsAmericaKeep.toISOString() -> 2014-06-01T16:00:00.000Z
//dayjsAmericaKeep.format('YYYY-MM-DDTHH:mm:ss') -> 2014-06-01T12:00:00
사용자 시간대 추정
javascript
dayjs.tz.guess();
시간대 파싱
javascript
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
시간대 변경
javascript
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
에서 사용)
javascript
// 기본 시간대 설정
dayjs.tz.setDefault('America/New_York');
// 기본 시간대를 시스템 시간대로 초기화
dayjs.tz.setDefault();
Moment.js 와의 차이점
기본 시간대를 사용하면 moment(dateValue)
는 이 시간대를 사용합니다. 그러나 moment.tz(dateValue, timezone)
는 여전히 두 번째 매개변수가 필요합니다.
반면, dayjs(dateValue)
는 dayjs.tz.setDefault
가 설정되어 있어도 항상 로컬 시간대를 사용합니다. 기본 시간대를 사용하려면 dayjs.tz(dateValue)
(두 번째 매개변수 없이)를 호출해야 합니다.