microCMSの記事公開日時はpublishedAt
で取得できますが、タイムゾーンがUTCになっています。
console.log(blog.publishedAt);
// 出力結果
2023-09-14T16:19:05.385Z
これをJST(日本標準時)に変更して出力する方法をまとめました。
Contents
dayjsをインストール・インポート
dayjsはJavaScriptの日付を操作するライブラリです。こちらをnpmでインストールしておきます。
$ npm i dayjs
インポートしたら、必要なプラグインを準備しておきます。
import dayjs from "dayjs";
import utc from "dayjs/plugin/utc";
import timezone from "dayjs/plugin/timezone";
dayjs.extend(utc);
dayjs.extend(timezone);
dayjs.tz.setDefault("Asia/Tokyo");
日時を変換
実際に使ってみます。microCMSで取得するpublishedAt
をそのままJSTに変換できます。
const publishedDate = dayjs(blog.publishedAt).tz().format();
console.log(publishedDate); // 2023-09-15T01:19:05+09:00
ただ表示するには長すぎるので、フォーマットを"YYYY/MM/DD"
に指定します。
const publishedDate = dayjs(blog.publishedAt).tz().format("YYYY/MM/DD");
console.log(publishedDate); // 2023/09/15
これで日付のずれがなくなりました!