【JavaScript】日付のフォーマットを変換する方法

JavaScriptで日付を扱う際に、特定のフォーマットに変換する必要があることはよくあります。この記事では、JavaScriptで日付をフォーマットするさまざまな方法を紹介します。

toLocaleDateString() メソッドを使用する

JavaScriptの Date オブジェクトの toLocaleDateString() メソッドを使用することで、ロケールに基づいた日付文字列を取得できます。以下はその例です。

const date = new Date();
const formattedDate = date.toLocaleDateString('ja-JP', { year: 'numeric', month: '2-digit', day: '2-digit' });
console.log(formattedDate); // 出力例: "2024/03/24"

Intl.DateTimeFormat オブジェクトを使用する

Intl.DateTimeFormat オブジェクトを使用することでも、日付をフォーマットできます。以下はその例です。

const date = new Date();
const formatter = new Intl.DateTimeFormat('ja-JP', { year: 'numeric', month: '2-digit', day: '2-digit' });
const formattedDate = formatter.format(date);
console.log(formattedDate); // 出力例: "2024/03/24"

date-fns ライブラリを使用する

date-fns ライブラリを使用することで、日付のフォーマットが簡単になります。以下はその例です。

const { format } = require('date-fns');
const formattedDate = format(new Date(), 'yyyy/MM/dd', { locale: require('date-fns/locale/ja') });
console.log(formattedDate); // 出力例: "2024/03/24"

moment.js ライブラリを使用する (非推奨)

moment.js は非推奨とされていますが、以下はその使用例です。

const moment = require('moment');
const formattedDate = moment().format('YYYY/MM/DD');
console.log(formattedDate); // 出力例: "2024/03/24"

日付の形式について

yy: 2桁の年 (例: 22、24)
yyyy: 4桁の年 (例: 2022、2024)
M: 月を表す数値 (1-12)
MM: 2桁の月 (01-12)
MMM: 月の省略名 (Jan、Feb、Mar など)
MMMM: 月のフルネーム (January、February、March など)
d: 月内の日付を表す数値 (1-31)
dd: 2桁の日付 (01-31)
D: 週内の日数 (0-6、0が日曜日)
E: 曜日の省略名 (Sun、Mon、Tue など)
EEE: 曜日の短縮形 (Sun、Mon、Tue など)
EEEE: 曜日のフルネーム (Sunday、Monday、Tuesday など)
H: 24時間表記の時 (0-23)
HH: 2桁の24時間表記の時 (00-23)
h: 12時間表記の時 (1-12)
hh: 2桁の12時間表記の時 (01-12)
m: 分 (0-59)
mm: 2桁の分 (00-59)
s: 秒 (0-59)
ss: 2桁の秒 (00-59)
S: ミリ秒 (0-999)
SSS: 3桁のミリ秒 (000-999)
a: AM/PM 指示子 (AM、PM)

まとめ

以上がJavaScriptで日付をフォーマットする方法です。用途に応じて、最適な方法を選択してください。