0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【JavaScript】Day.jsでタイムゾーンを変更しつつフォーマットする

Last updated at Posted at 2022-11-20

概要

Day.jsではparseやformatの際に、日付のタイムゾーンを設定することができます。
今回はUTCのタイムゾーンで受け取った日付の文字列を、日本時間に変換しつつformatする、といった場合にどうするかというののメモ書きです。

対応方針

まず、parse時にドキュメントのParsing in Zoneにある通り、dayjs.tzの関数を呼び出してUTCのタイムゾーン指定でparseします。
parse後のオブジェクトをドキュメントのTime Zoneにある通り、もう一度dayjs.tz関数を呼び出して、日本時間に変換します。

実装サンプル

function getDayJsObj() {
  const dayjs = require("dayjs");
  const utc = require("dayjs/plugin/utc");
  const timezone = require("dayjs/plugin/timezone");
  dayjs.extend(utc);
  dayjs.extend(timezone);
  return dayjs;
}

export function getDisplayDateMinuteUnit(dateStr) {
  const dayjs = getDayJsObj();
  // UTCとして日付文字列を読み込み
  const dayjsTz = dayjs.tz(dateStr, "YYYY-MM-DD HH:mm:ss", "UTC");
  // 日本時間で分まで出力
  return dayjsTz.tz("Asia/Tokyo").format("YYYY-MM-DD HH:mm");
}

その他参考

Day.jsの.tz.setDefault()が動かないと思ったけど使い方が間違ってただけだった
Day.jsのフォーマット指定一覧(ドキュメント)

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?