TypeScriptで日付時刻を扱うならこれ!豊富なサンプルコード付き解説
TypeScriptで現在の日付と時刻を取得する方法
new Date() コンストラクタを使用する
最もシンプルでよく使われる方法です。
const now = new Date();
console.log(now); // 2024-06-28T18:53:00.000Z
このコードは、現在時刻を表す Date
オブジェクトを作成し、コンソールにログ出力します。
Date
オブジェクトには、年、月、日、時、分、秒、ミリ秒などの情報が含まれています。それぞれの情報にアクセスするには、以下のプロパティを使用します。
getFullYear()
: 年を取得します。getMonth()
: 月を取得します。 (0から11までの値で、0が1月を表します)
例えば、以下のコードは、現在の日付をYYYY-MM-DD形式で取得します。
const today = new Date();
const year = today.getFullYear();
const month = today.getMonth() + 1; // 月は0から11なので、1を足す
const day = today.getDate();
const formattedDate = `${year}-${month}-${day}`;
console.log(formattedDate); // 2024-06-28
Date.now() 関数を使用する
現在時刻をミリ秒単位のエポックタイムとして取得する方法です。
const now = Date.now();
console.log(now); // 1688426180000
エポックタイムとは、1970年1月1日 00:00:00 (UTC) からの経過時間をミリ秒単位で表したものです。
この値を new Date()
コンストラクタに渡すことで、その時点の日付と時刻を表す Date
オブジェクトを作成することができます。
const timestamp = 1688426180000;
const date = new Date(timestamp);
console.log(date); // 2024-06-28T18:53:00.000Z
フォーマットされた日付時刻文字列を取得する
toLocaleString()
メソッドを使用すると、現在の日付と時刻をフォーマットされた文字列として取得することができます。
const now = new Date();
const formattedDate = now.toLocaleString();
console.log(formattedDate); // 2024年6月28日 金曜日 18時53分00秒
引数にオプションを指定することで、フォーマット形式を自由に設定することができます。詳しくは、MDN Web Docs の toLocaleString() メソッドの説明 を参照してください。
上記以外にも、ライブラリなどを活用することで、より複雑な日付時刻の処理を行うことも可能です。
TypeScript サンプルコード
// 現在の日付と時刻を取得
const now = new Date();
// コンソールにログ出力
console.log(now); // 2024-06-28T10:54:00.000Z
// 年、月、日、時、分、秒を取得
const year = now.getFullYear();
const month = now.getMonth() + 1; // 月は0から11なので、1を足す
const day = now.getDate();
const hour = now.getHours();
const minute = now.getMinutes();
const second = now.getSeconds();
// YYYY-MM-DD形式で表示
const formattedDate1 = `${year}-${month}-${day}`;
console.log(formattedDate1); // 2024-06-28
// HH:MM:SS形式で表示
const formattedTime1 = `${hour}:${minute}:${second}`;
console.log(formattedTime1); // 10:54:00
// 曜日を取得
const dayOfWeek = now.getDay();
const weekDayNames = ["日", "月", "火", "水", "木", "金", "土"];
const formattedDayOfWeek = weekDayNames[dayOfWeek];
console.log(formattedDayOfWeek); // 金
// ミリ秒単位のエポックタイムを取得
const timestamp = now.getTime();
console.log(timestamp); // 1688428040000
// toLocaleString()を使用してフォーマット
const formattedDate2 = now.toLocaleString();
console.log(formattedDate2); // 2024年6月28日 金曜日 10時54分00秒
// オプションを指定してtoLocaleString()を使用
const formattedDate3 = now.toLocaleString('ja-JP', { year: 'numeric', month: 'long', day: 'numeric' });
console.log(formattedDate3); // 2024年6月28日
// ライブラリを使用する (Moment.jsの例)
// https://momentjs.com/
const moment = require('moment');
const formattedDate4 = moment(now).format('YYYY年MM月DD日 HH時mm分ss秒');
console.log(formattedDate4); // 2024年06月28日 10時54分00秒
このコードでは、以下のライブラリを使用しています。
moment.js
: 日付時刻の処理を容易にするライブラリ。インストールが必要です。
このサンプルコードを参考に、様々な形式で現在の日付と時刻を取得してみてください。
TypeScriptで現在の日付と時刻を取得するその他の方法
テンプレートリテラルを使用する
Date
オブジェクトを直接テンプレートリテラルに埋め込むことができます。
const now = new Date();
const formattedDate = `${now.getFullYear()}-${now.getMonth() + 1}-${now.getDate()}`;
console.log(formattedDate); // 2024-06-28
Intl
APIは、国際化された日付時刻の処理を提供します。
const now = new Date();
const formattedDate = new Intl.DateTimeFormat('ja-JP', { year: 'numeric', month: 'long', day: 'numeric' }).format(now);
console.log(formattedDate); // 2024年6月28日
Arrow関数を使用する
new Date()
コンストラクタと toLocaleString()
メソッドを組み合わせたコードを、より簡潔に書くことができます。
const formattedDate = () => new Date().toLocaleString();
console.log(formattedDate()); // 2024年6月28日 金曜日 10時56分00秒
パフォーマンスを意識する場合
頻繁に現在の日付と時刻を取得する必要がある場合は、Date.now()
関数を使用してエポックタイムを取得し、それを必要な形式に変換する方がパフォーマンス効率が優れる場合があります。
const timestamp = Date.now();
const formattedDate = new Date(timestamp).toLocaleString();
console.log(formattedDate); // 2024年6月28日 金曜日 10時56分00秒
注意点
- 上記の方法は、いずれもブラウザ上で動作するTypeScriptコードを想定しています。Node.jsなどの環境では、一部動作が異なる場合があります。
- 日付時刻の処理は複雑な場合があり、今回紹介しきれない方法もたくさんあります。より高度な処理が必要な場合は、専門のライブラリなどを活用することを検討してください。
これらの方法を状況に応じて使い分けることで、より効率的かつ柔軟なコードを書くことができます。
typescript