#18 TypeScriptで学ぶ日付と時刻の扱いの基本
TypeScriptの日付操作は、JavaScriptの`Date`オブジェクトをそのまま使いますが、型があることで扱い方がより明確になります。この記事では、TypeScriptにおける日付の基本的な扱い方を解説します。
Dateオブジェクトを使う
const now: Date = new Date();
console.log(now.getFullYear());
実際には型推論が効くため`const now = new Date();`だけでも`now`は自動的に`Date`型として扱われます。型注釈を書くのは、関数の引数や戻り値など、意図を明示したい場面が中心です。
関数の引数に日付の型を使う
function formatDate(date: Date): string {
return `${date.getFullYear()}年${date.getMonth() + 1}月`;
}
引数の型を`Date`と明示しておくことで、日付ではない値を誤って渡そうとした際に、実行前の段階でエラーとして教えてもらえます。
文字列から日付に変換する
文字列から`Date`オブジェクトを作りたい場合は、コンストラクタに文字列を渡します。
const d: Date = new Date("2026-08-20");
ただし`new Date(文字列)`は、渡す文字列の形式によって解釈のされ方が微妙に異なることがあり、実務では`dayjs`のような日付ライブラリを併用するケースも多くあります。
日付を計算する
TypeScript(JavaScript)の標準機能には、日付に「〇日後」を計算する専用メソッドがありません。ミリ秒単位で計算するのが基本です。
const threeDaysLater = new Date(now.getTime() + 3 * 24 * 60 * 60 * 1000);
TypeScriptならではの注意点
JavaScriptと同様、`getMonth()`が0から始まる点には変わらず注意が必要です。型があってもこの仕様自体が変わるわけではないため、月を表示する処理では`+1`を忘れないようにしましょう。また、標準の`Date`型は日付計算の機能が乏しいため、業務アプリでは`date-fns`や`dayjs`といったライブラリを導入し、型定義もセットで扱うのが一般的です。ライブラリを使うことで、タイムゾーンの扱いや月末・うるう年の計算といった複雑なケースも安全に処理できます。
まとめ
TypeScriptの日付操作はJavaScriptと同じ`Date`が基本です。型を明示することで関数の使い方をより安全にできますが、本格的な日付計算には専用ライブラリの利用も検討しましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
TypeScriptをもっと学びたい方には「プロを目指す人のためのTypeScript入門」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿