技術系

(Javascript)日付をいろいろな型に変換する方法

Javascript,日付,変換,date,toString

Javascriptにおいて、日付をいろいろな型に変換・フォーマットする方法をまとめました。

(準備)Dateオブジェクトの取得

Javascriptで日付データを取得するには、以下のようにDateオブジェクトのインスタンスを作成します。

//今日の日付(日時含む)データを取得して表示
const date = new Date();
console.log(date);

> Wed Jun 15 2022 06:46:14 GMT+0900 (日本標準時)

日付の型変換・フォーマット

日付(Dateオブジェクトのインスタンス)は次のとおりtoString()系のメソッドを使うといろいろな型に変換することができます。

toString()系メソッド変換結果
date.toString()Wed Jun 15 2022 08:09:46 GMT+0900 (日本標準時)
date.toISOString()2022-06-14T23:09:46.387Z
date.toUTCString()Tue, 14 Jun 2022 23:09:46 GMT
date.toLocaleString()2022/6/15 8:09:46
date.toLocaleString('en-US')6/15/2022, 8:09:46 AM
date.toDateString()Wed Jun 15 2022
date.toLocaleDateString()2022/6/15
date.toLocaleDateString('en-US')6/15/2022
date.toTimeString()08:09:46 GMT+0900 (日本標準時)
date.toLocaleTimeString()8:09:46
date.toLocaleTimeString('en-US')8:09:46 AM
日付の型変換・フォーマット

確認用のサンプルコードです。

const date = new Date();
console.log(date); //Wed Jun 15 2022 08:09:46 GMT+0900 (日本標準時)
console.log(date.toString()); //Wed Jun 15 2022 08:09:46 GMT+0900 (日本標準時)
console.log(date.toISOString()); //2022-06-14T23:09:46.387Z
console.log(date.toUTCString()); //Tue, 14 Jun 2022 23:09:46 GMT
console.log(date.toLocaleString()); //2022/6/15 8:09:46
console.log(date.toLocaleString('en-US')); //6/15/2022, 8:09:46 AM
console.log(date.toDateString()); //Wed Jun 15 2022
console.log(date.toLocaleDateString()); //2022/6/15
console.log(date.toLocaleDateString('en-US')); //6/15/2022
console.log(date.toTimeString()); //08:09:46 GMT+0900 (日本標準時)
console.log(date.toLocaleTimeString()); //8:09:46
console.log(date.toLocaleTimeString('en-US')); //8:09:46 AM

yy-mm-dd型,yymmdd型への変換方法

これまで紹介したtoString系の変換ではyy-mm-dd型(例:2022-06-14)やyymmdd型(例:20220614)には直接変換できませんので、こちらの変換方法を書きます。

const date = new Date();
console.log(date); //Wed Jun 15 2022 08:09:46 GMT+0900 (日本標準時)

// yy-mm-dd型
const date1 = date.toISOString().split('T')[0];
console.log(date1); //2022-06-15

// yymmdd型
const date2 = date.toISOString().split('T')[0].replace(/-/g,"");
console.log(date2); //20220615

まずyy-mm-dd型については、toISOStringメソッドで「2022-06-14T23:09:46.387Z」という型に変換したものをsplit('T')[0]をつかって’T'の文字で2分割し前半の「2022-06-14」を取り出すという方法で実現しています。

つぎにyymmdd型ですが、こちらはyy-mm-dd型に変換したものをさらにraplace(/-/g,"")で文字列中のすべての「-」(ハイフン)を空文字「””」に変換して取得しました。
なお、raplace(/-/g,"")はreplace("変換対象","変換後文字")という書き方で文字列中の文字を変換する関数で、今回のように文字削除にも使えます。
通常だとreplace関数は最初に発見した変換対象しか変換しませんが、「/-/g」のように正規表現を使うことで対象すべての文字を変換できます。

-技術系
-