Day.js Time Zone 対応サンプルコード : dayjs.tz() の使い方
- 2021 6/29
- カテゴリー : 未分類
- Day.js . JavaScript
- コメントを書く
Day.js で Time Zone 対応をするための dayjs.tz() の使い方のサンプルコードをご紹介します。
背景 Day.js で Time Zone を扱いたい
Day.js で Time Zone を扱いたいのでサンプルコードを動かして理解しました。
- 公式サイト: Day.js · 2kB JavaScript date utility library
- GitHub: iamkun/dayjs: ⏰ Day.js 2kB immutable date-time library alternative to Moment.js with the same modern API
Day.js で Time Zone 対応サンプルコード
dayjs.tz(…, String) の使用例
const dayjs = require('dayjs');
dayjs.extend(require('dayjs/plugin/utc'));
dayjs.extend(require('dayjs/plugin/timezone'));
dayjs.tz.setDefault('Etc/GMT')
dayjs.tz('2021-06-01 09:12:34', 'Asia/Tokyo').format()
// '2021-06-01T09:12:34+09:00'
dayjs.tz('2021-06-01 09:12:34', 'Asia/Tokyo').toDate()
// 2021-06-01T00:12:34.000Z
/** 以下、TZ のデフォルトを JST にして検証したコード **/
dayjs.tz.setDefault('Asia/Tokyo')
dayjs.tz('2021-06-01 09:12:34').format()
// '2021-06-01T09:12:34+09:00'
dayjs.tz('2021-06-01 09:12:34').toDate()
// 2021-06-01T00:12:34.000Z
dayjs.tz('2021-06-01 09:12:34', 'Asia/Tokyo').format()
// '2021-06-01T09:12:34+09:00'
dayjs.tz('2021-06-01 09:12:34', 'Asia/Tokyo').toDate()
// 2021-06-01T00:12:34.000Z
dayjs.tz().tz(String) の使用例
const dayjs = require('dayjs');
dayjs.extend(require('dayjs/plugin/utc'));
dayjs.extend(require('dayjs/plugin/timezone'));
dayjs.tz.setDefault('Etc/GMT')
dayjs.tz('2021-06-01 09:12:34').tz('Asia/Tokyo').format()
// '2021-06-01T18:12:34+09:00'
dayjs.tz('2021-06-01 09:12:34').tz('Asia/Tokyo').toDate()
// 2021-06-01T09:12:34.000Z
dayjs().tz(String) の使用例
タイムゾーンを考慮したい場合には dayjs().tz(String) という使い方をするとバグるので、必ず dayjs.tz() を利用しましょう。
const dayjs = require('dayjs');
dayjs.extend(require('dayjs/plugin/utc'));
dayjs.extend(require('dayjs/plugin/timezone'));
dayjs.tz.setDefault('Etc/GMT')
dayjs('2021-06-01 09:12:34').tz('Asia/Tokyo').format()
// '2021-06-01T09:12:34+09:00'
dayjs('2021-06-01 09:12:34').tz('Asia/Tokyo').toDate()
// 2021-06-01T00:12:34.000Z
dayjs('2021-06-01 09:12:34').tz('America/New_York').format()
// '2021-05-31T20:12:34-04:00'
dayjs('2021-06-01 09:12:34').tz('America/New_York').toDate()
// 2021-06-01T00:12:34.000Z
以上、Day.js で Time Zone 対応するサンプルコードを手元に用意しておきたい、現場からお送りしました。