TypeScriptで年月日を簡単取得!10選の実用コードで徹底解説 – JPSM

TypeScriptで年月日を簡単取得!10選の実用コードで徹底解説

TypeScriptで年月日を効率的に取得するサンプルコードの一覧TypeScript

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

このサービスは複数のSSPによる協力の下、運営されています。

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

また、理解しにくい説明や難しい問題に躓いても、JPSMがプログラミングの解説に特化してオリジナルにチューニングした画面右下のAIアシスタントに質問していだければ、特殊な問題でも指示に従い解決できるように作ってあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

Web開発やアプリケーション開発の現場では、年月日の取得や操作は頻繁に行われるタスクとなっています。

特にTypeScriptを利用する場面では、より型安全にこれらの操作を行いたいと考える開発者も多いでしょう。

そこで今回は、TypeScript初心者の方を対象に、年月日の取得が簡単にできる10の実用的なサンプルコードを取り上げます。

●TypeScriptでの年月日取得の基本

TypeScriptで年月日を取得するための基本を学ぶことは、TypeScriptの強力な型システムを最大限に活用する上で不可欠です。

年月日の取得を始める前に、まずTypeScriptがどのような言語であるか理解することが大切です。

TypeScriptは、JavaSciprtとの互換性を保ちながらも、より厳格な型の振る舞いとコードの安全保障に寄与する特性を備えています。

これにより、日付という日々変わる動的な値を扱う際に、バグが少なく信頼性の高いコードを書くことが可能になります。

次に、そんなTypeScriptの特徴を踏まえて、実際にどのような方法で型安全な年月日の取得が行えるのか見ていきましょう。

○TypeScriptとは?

TypeScriptは、JavaScriptのスーパーセットとして知られるプログラミング言語です。

JavaScriptに静的型付けの機能を追加し、より安全で効率的なコードの記述を実現するために作られました。

そのため、TypeScriptでは、変数や関数のパラメータに型を指定することができます。

これにより、コードのミスや不具合を事前に防ぐことが期待できます。

○年月日の取得とは?

年月日の取得とは、プログラム上で特定の日付を取得・操作することを指します。

これには、現在の日付や時刻を取得する場合や、指定した日付を取得・操作する場合などがあります。

また、日付の差分計算や特定の日付の曜日を知るための方法も含まれます。

TypeScriptでは、これらの日付操作を行うための多くのメソッドや関数が提供されており、それらを活用して効率的に日付の取得や操作を行うことができます。

●10選の実用サンプルコード

TypeScriptはJavaScriptのスーパーセットとして知られており、静的型付けやインターフェイスなどの機能を持っています。

これらの特徴により、大規模なプロジェクトや複雑なアプリケーションの開発が容易になります。

特に日付や時間の操作は、Webアプリケーション開発において頻繁に行われるため、効率的かつ正確に年月日を取得する方法を知っておくことは大切です。

そこで、今回はTypeScriptを用いて年月日を取得するための実用的なサンプルコードを10選ご紹介します。

初心者の方でも簡単に実装できる方法から、さらに応用的なテクニックまで詳細に解説していきます。

○サンプルコード1:現在の年月日を取得

初めに、最も基本的な現在の年月日を取得するサンプルコードをご紹介します。

Dateオブジェクトを使用することで、シンプルに実装することができます。

// 現在の日付を取得する
const today = new Date();

// 年、月、日をそれぞれ取得する
const year = today.getFullYear();
const month = today.getMonth() + 1; // 月は0から始まるため1を加算
const day = today.getDate();

console.log(`今日は${year}年${month}月${day}日です。`);

このコードではDateオブジェクトを使って現在の日付と時刻の情報を取得しています。

この例ではgetFullYearメソッドで年を、getMonthメソッドで月を(ただし、月は0(1月)から11(12月)の範囲で取得されるため、実際の月を得るには1を加える必要があります)、getDateメソッドで日を取得しています。

上記のコードを実行すると、例えば「今日は2023年8月21日です。」のように現在の年月日がコンソールに表示されます。

この基本的なコードをベースに、さまざまなカスタマイズや応用が可能です。

例えば、日付のフォーマットを変更する場合や特定の日付に何日後や何日前の日付を計算する場合など、日付操作に関連する多くのタスクを効率的に実装することができます。

○サンプルコード2:指定日の年月日を取得

TypeScriptを使用して、指定された日付の年月日を取得する方法を紹介します。

特定のイベントや予定がある日の日付をプログラム上で扱う場面が多い中、この方法は非常に便利であり、多くのアプリケーションでの使用が期待されます。

このコードではDateオブジェクトを使って指定された日付の年、月、日を取得するコードを表しています。

この例では、2023年5月21日を指定して、その日の年、月、日をそれぞれ出力しています。

// 指定日の年月日を取得するサンプルコード
const getSpecificDateDetails = (year: number, month: number, day: number) => {
  // Dateオブジェクトを生成
  const specificDate = new Date(year, month - 1, day); // 注意: monthは0から11までの数値を取ります

  // 年、月、日をそれぞれ取得
  const specificYear = specificDate.getFullYear();
  const specificMonth = specificDate.getMonth() + 1; // 1を足して実際の月を取得
  const specificDay = specificDate.getDate();

  console.log(`指定された日付の年: ${specificYear}`);
  console.log(`指定された日付の月: ${specificMonth}`);
  console.log(`指定された日付の日: ${specificDay}`);
};

// 2023年5月21日の年月日を取得
getSpecificDateDetails(2023, 5, 21);

上記のコードを実行すると、2023年5月21日の年、月、日がそれぞれ出力されます。

具体的には、次のような出力となります。

指定された日付の年: 2023
指定された日付の月: 5
指定された日付の日: 21

応用例として、ユーザーから入力された日付をもとに、その日付の年月日を取得するアプリケーションの作成などが考えられます。

また、カスタマイズ例として、指定された日付の曜日も取得する機能の追加や、取得した年月日を特定のフォーマットで出力する機能の追加などが可能です。

○サンプルコード3:月の最終日を取得

Webアプリケーションの開発やデータ分析の際、特定の月の最後の日を知りたい場面がしばしばあります。

TypeScriptを使用して、特定の月の最終日を効率的に取得する方法を紹介します。

このコードでは、Dateオブジェクトを使って月の最終日を取得するコードを表しています。

この例では、2023年8月の最終日を取得しています。

// 2023年8月の最終日を取得する
const year = 2023;
const month = 8;

// 次の月の1日を取得
const nextMonthFirstDay = new Date(year, month, 1);

// 1日減算して、今月の最終日を取得
nextMonthFirstDay.setDate(nextMonthFirstDay.getDate() - 1);
const lastDay = nextMonthFirstDay.getDate();

console.log(`2023年8月の最終日は${lastDay}日です。`);

上記のコードを実行すると、”2023年8月の最終日は31日です。”と表示されます。

より汎用的に使用できるように、年と月を引数として渡し、最終日を取得する関数を作成します。

function getLastDayOfMonth(y: number, m: number): number {
    const nextMonthFirstDay = new Date(y, m, 1);
    nextMonthFirstDay.setDate(nextMonthFirstDay.getDate() - 1);
    return nextMonthFirstDay.getDate();
}

const year = 2023;
const month = 8;
const lastDayOfMonth = getLastDayOfMonth(year, month);

console.log(`${year}年${month}月の最終日は${lastDayOfMonth}日です。`);

この関数を使えば、任意の年と月を指定して簡単にその月の最終日を取得することができます。

さらに、年の範囲を指定して、その期間の各月の最終日を一覧表示するプログラムの例を紹介します。

function displayLastDaysOfMonths(startYear: number, endYear: number): void {
    for (let y = startYear; y <= endYear; y++) {
        for (let m = 0; m < 12; m++) {
            const lastDay = getLastDayOfMonth(y, m);
            console.log(`${y}年${m + 1}月の最終日は${lastDay}日です。`);
        }
    }
}

displayLastDaysOfMonths(2022, 2023);

上記のコードを利用すれば、2022年から2023年までの各月の最終日が順に表示されます。

これにより、期間を指定して複数の月の最終日を一度に取得することができます。

○サンプルコード4:特定のフォーマットで年月日を表示

多くの場面で、特定の形式に合わせて日付を表示する必要があります。

日付のフォーマットは、日常的な業務や、特定のプロジェクトによって異なることが多いです。

TypeScriptを使用して、日付を特定の形式で表示する方法を解説します。

このコードでは、Dateオブジェクトを使って現在の日付を取得し、それを特定の形式で表示するコードを表しています。

この例では、年、月、日、曜日を「YYYY年MM月DD日(曜日)」の形式で出力しています。

function formatDate(date: Date): string {
    // 曜日の配列を用意
    const days = ["日", "月", "火", "水", "木", "金", "土"];

    // 年、月、日、曜日を取得
    const year = date.getFullYear();
    const month = date.getMonth() + 1; // getMonth()は0から11の間の値を返すため、+1が必要
    const day = date.getDate();
    const dayOfWeek = days[date.getDay()]; // getDay()は0(日曜日)から6(土曜日)の間の値を返す

    return `${year}年${month}月${day}日(${dayOfWeek})`;
}

// 使用例
const now = new Date();
const formattedDate = formatDate(now);
console.log(formattedDate);

上記のサンプルコードを実行すると、例えば「2023年8月21日(月)」のように、現在の日付を指定の形式で表示できます。

この関数は、引数としてDateオブジェクトを受け取り、指定したフォーマットで日付を文字列として返します。

また、曜日を日本語で出力するための配列を利用しています。

○サンプルコード5:経過日数を計算

日常のビジネスシーンやアプリケーション開発では、特定の日付からどれだけの日数が経過したのかを知りたい場面が頻繁にあります。

例えば、何日前の商品が注文されたのか、あるいはプロジェクトの開始から何日経過したのかなど、経過日数の計算は非常に有用です。

この節では、TypeScriptを用いて経過日数を計算する方法を解説します。

特に初心者の方でも取り組みやすいよう、分かりやすく詳細に説明します。

このコードではDateオブジェクトを使って特定の日付と現在の日付との間の経過日数を計算する方法を表しています。

この例では、2022年1月1日からの経過日数を計算しています。

// 特定の日付を設定
const startDate = new Date(2022, 0, 1);  // 2022年1月1日
const currentDate = new Date();

// 2つの日付の差分(ミリ秒)を計算
const diff = currentDate.getTime() - startDate.getTime();

// ミリ秒を日数に変換
const elapsedDays = Math.floor(diff / (1000 * 60 * 60 * 24));

console.log(`2022年1月1日からの経過日数は${elapsedDays}日です。`);

上記のコードでは、まず2022年1月1日を示すstartDateと、現在の日付と時刻を示すcurrentDateをDateオブジェクトとして定義しています。

次に、getTimeメソッドを用いて、これら2つの日付の差分(ミリ秒単位)を計算します。

このミリ秒単位の差分を日数に変換するため、1000ミリ秒 × 60秒 × 60分 × 24時間で割ります。

最終的に得られた経過日数は、console.logを使用して出力されます。

このコードを実行すると、例えば2023年1月5日に実行した場合、「2022年1月1日からの経過日数は370日です。」という結果が表示されるでしょう。

また、経過日数の計算は、特定の日付を起点としている例を示しましたが、任意の2つの日付間の日数を計算することも可能です。

2022年1月1日から2022年12月31日までの日数を計算する例を紹介します。

const date1 = new Date(2022, 0, 1);  // 2022年1月1日
const date2 = new Date(2022, 11, 31);  // 2022年12月31日

const diff = date2.getTime() - date1.getTime();
const daysBetween = Math.floor(diff / (1000 * 60 * 60 * 24));

console.log(`2022年1月1日から2022年12月31日までの日数は${daysBetween}日です。`);

このコードを実行すると、「2022年1月1日から2022年12月31日までの日数は365日です。」と表示されます。

○サンプルコード6:未来の日付を計算

TypeScriptを用いて日付を操作する際、特定の日数後や前の日付を計算することはよくある要件となります。

たとえば、10日後や30日後の日付を知りたいといったケースです。

ここでは、特定の日数後の日付を計算する方法について詳しく解説します。

まずは基本的なコードから見ていきましょう。

// 今日の日付を取得
const today = new Date();

// 10日後の日付を計算
const daysToAdd = 10;
const futureDate = new Date(today);
futureDate.setDate(today.getDate() + daysToAdd);

console.log(`10日後の日付は${futureDate.getFullYear()}年${futureDate.getMonth() + 1}月${futureDate.getDate()}日です。`);

このコードでは、JavaScriptのDateオブジェクトを用いて10日後の日付を計算しています。

setDateメソッドを利用することで、指定した日数を加算した日付を新しいDateオブジェクトとして取得できます。

また、getMonthメソッドは0から始まるため、表示するときには+ 1を行っています。

この例を実行すると、今日の日付から10日後の日付がコンソールに表示される形になります。

例えば、今日が2023年8月21日であれば、10日後の日付は2023年8月31日です。という結果が表示されます。

こちらのコードは固定で10日後の日付を表示する仕組みになっていますが、関数を作成し、引数として「何日後」の日付を計算したいかを渡せるようにカスタマイズすることもできます。

function computeFutureDate(days: number): Date {
    const current = new Date();
    current.setDate(current.getDate() + days);
    return current;
}

// 例: 20日後の日付を取得
const twentyDaysLater = computeFutureDate(20);
console.log(`20日後の日付は${twentyDaysLater.getFullYear()}年${twentyDaysLater.getMonth() + 1}月${twentyDaysLater.getDate()}日です。`);

この関数を使用することで、任意の日数後の日付を柔軟に取得できるようになります。

また、TypeScriptを使用しているため、関数の引数や戻り値に型情報を付与することが推奨されます。

この例では、引数daysnumber型を、戻り値にDate型を指定しています。

このように型を適切に指定することで、コードの品質や安全性を高めることができます。

○サンプルコード7:日付の比較

日付の比較は、プログラムを書く上で頻繁に行われる操作の一つです。

日付の大小や同等性を確認することで、特定のイベントや通知をトリガする条件を作ることができます。

TypeScriptを使用して日付の比較を行う方法を、サンプルコードを通して解説していきます。

このコードではDateオブジェクトを使って二つの日付を比較するコードを表しています。

この例では、現在の日付と指定された日付とを比較して、結果を文字列で返す処理を行っています。

// 現在の日付と指定日を比較する関数
function compareDates(targetDate: Date): string {
  const currentDate = new Date();

  // 両日付を年月日のみの文字列に変換
  const currentDateString = `${currentDate.getFullYear()}-${currentDate.getMonth() + 1}-${currentDate.getDate()}`;
  const targetDateString = `${targetDate.getFullYear()}-${targetDate.getMonth() + 1}-${targetDate.getDate()}`;

  if (currentDateString === targetDateString) {
    return '指定された日付は今日と同じです。';
  } else if (currentDate > targetDate) {
    return '指定された日付は今日より前の日付です。';
  } else {
    return '指定された日付は今日より後の日付です。';
  }
}

// サンプルの実行
const specifiedDate = new Date(2023, 7, 22);  // 2023年8月22日
console.log(compareDates(specifiedDate));

このコードを実行すると、例えば指定された日付が2023年8月22日の場合、’指定された日付は今日より前の日付です。’という結果が返されます。

実際には日付の指定によって、3つの異なるメッセージのいずれかが出力されるでしょう。

この方法の利点は、年、月、日の部分だけを取り出して比較するため、時、分、秒の差は無視される点です。

ただし、タイムゾーンの影響を受けることはないので、国際的なアプリケーションで使用する場合は注意が必要です。

また、TypeScriptにおける日付の比較はJavaScriptの比較と基本的に変わりません。

そのため、JavaScriptの知識がある方はすぐに取り入れることができるでしょう。

次に、日付の比較をさらに詳しくやりたい場合の応用例を見てみましょう。

ある日付が特定の期間内に含まれるかを確認する例を考えます。

function isDateWithinPeriod(targetDate: Date, startDate: Date, endDate: Date): boolean {
  return targetDate >= startDate && targetDate <= endDate;
}

// サンプルの実行
const startPeriod = new Date(2023, 7, 1);  // 2023年8月1日
const endPeriod = new Date(2023, 7, 31);   // 2023年8月31日
const checkDate = new Date(2023, 7, 15);   // 2023年8月15日
console.log(isDateWithinPeriod(checkDate, startPeriod, endPeriod));  // true

上記の例では、指定された日付が特定の期間内に含まれているかを確認する関数を作成しました。

期間の開始日と終了日を引数として受け取り、その期間内に目的の日付が含まれているかをboolean値で返します。

この方法を使用すると、特定の期間内でのイベントの開催や、期間限定のプロモーションなどの条件をプログラムで確認することができます。

○サンプルコード8:年月日を要素として取得

日付を扱う際、年・月・日という要素をそれぞれ独立して取得したいシチュエーションは多々存在します。

例として、生年月日から現在の年齢を計算する場合や、特定の月の日数を取得する場合などが考えられます。

ここでは、TypeScriptを使用して年、月、日をそれぞれ別々に取得する方法について解説します。

このコードでは、Dateオブジェクトを使って現在の日付の年・月・日をそれぞれ独立した変数として取得するコードを表しています。

この例では、getFullYeargetMonthgetDateというメソッドを使用して、それぞれ年、月、日を取得しています。

const today = new Date(); // 現在の日付を取得

const year = today.getFullYear();  // 年を取得
const month = today.getMonth() + 1;  // 月を取得 (注意: 0から始まるので+1する)
const day = today.getDate();  // 日を取得

console.log(`今日は${year}年${month}月${day}日です。`);

上記のコードを実行すると、現在の日付を「今日は〇〇年〇〇月〇〇日です。」という形式でコンソールに表示します。

getMonthメソッドの戻り値は0から始まるため、実際の月として表示するためには1を加算する必要があります。

これはJavaScriptの仕様であり、TypeScriptもその仕様を踏襲しています。

このコードを少し応用すれば、任意の日付から年、月、日を要素として取得することも可能です。

例えば、次のコードでは2023年7月15日から年、月、日を取得しています。

const specificDate = new Date(2023, 6, 15);  // 2023年7月15日を設定 (月は0から始まるため、6とする)

const sYear = specificDate.getFullYear();
const sMonth = specificDate.getMonth() + 1;
const sDay = specificDate.getDate();

console.log(`指定された日付は${sYear}年${sMonth}月${sDay}日です。`);

このコードを実行すると、指定された日付を「指定された日付は2023年7月15日です。」という形式でコンソールに表示します。

また、カスタマイズの一例として、特定の日付から曜日を取得することも可能です。

下記のコードでは、getDayメソッドを使用して、指定した日付の曜日を日本語で取得しています。

const daysInJapanese = ['日', '月', '火', '水', '木', '金', '土'];
const dayOfWeek = specificDate.getDay();
const dayInJapanese = daysInJapanese[dayOfWeek];

console.log(`2023年7月15日は${dayInJapanese}曜日です。`);

このコードの実行結果として、「2023年7月15日は土曜日です。」と表示されます。

○サンプルコード9:日付の差分を計算

日常のビジネスやプログラミングの中で、特定の期間内に何日間が経過したか、あるいはあと何日間で特定の日付になるかといった情報を知りたいことは少なくありません。

特に予定管理やスケジュールの調整、期間限定のキャンペーンなどを行う際に、このような日付の差分を計算する能力は非常に有用です。

このコードでは、TypeScriptを使用して2つの日付間の差分を日数で計算する方法を表しています。

この例では、Dateオブジェクトを利用して2つの日付を定義し、それらの差分をミリ秒単位で取得した後、それを日数に変換しています。

// 2つの日付を定義
let date1 = new Date(2023, 7, 20); // 2023年8月20日 (月は0から始まるため、7は8月を指す)
let date2 = new Date(2023, 7, 27); // 2023年8月27日

// 2つの日付の差分をミリ秒単位で計算
let diff = date2.getTime() - date1.getTime();

// ミリ秒を日数に変換 (1日 = 24時間 = 1440分 = 86400秒 = 86400000ミリ秒)
let daysDiff = diff / 86400000;

console.log(daysDiff); // 7を出力

このサンプルコードを使用すると、2023年8月20日と2023年8月27日の間には7日間の差があることが計算できます。

この方法では、どんな2つの日付の間でも日数の差分を簡単に取得することができます。

また、日付の入力にはJavaScriptのDateオブジェクトの特性を利用しています。

月は0から始まるので、例えば8月を指定する場合は7となりますので注意が必要です。

上記のサンプルコードを実行すると、コンソールに「7」という結果が表示されます。

これは、2つの日付の間に7日間の差があることを示しています。

○サンプルコード10:特定の日付の曜日を取得

特定の日付の曜日を知りたいとき、それはカレンダーを確認するためだけではなく、ビジネスロジックやユーザーへの表示内容の変更など、さまざまなシチュエーションで求められる情報です。

TypeScriptで日付から曜日を効率的に取得する方法を解説します。

このコードでは、Dateオブジェクトを使って特定の日付から曜日を取得するコードを表しています。

この例では、2023年8月21日が何曜日かを取得しています。

// 日付から曜日を取得するサンプルコード
const getDayOfWeek = (year: number, month: number, date: number): string => {
    const days = ['日', '月', '火', '水', '木', '金', '土'];
    const targetDate = new Date(year, month - 1, date);
    return days[targetDate.getDay()];
};

const dayOfWeek = getDayOfWeek(2023, 8, 21);
console.log(`2023年8月21日は${dayOfWeek}曜日です。`);

上記のサンプルコードを実行すると、コンソールに「2023年8月21日は月曜日です。」というメッセージが表示されます。

このコードをカスタマイズして、異なる日付や曜日のフォーマットで取得することもできます。

この方法の利点は、外部ライブラリを使用せずに簡単に曜日を取得できることです。

また、getDay()メソッドを利用することで、0から6までの数字で曜日を取得でき、それを日本語の曜日に変換しています。

ただし、この方法ではグレゴリオ暦を基準として曜日を取得するため、他の暦を使用する場合や特定の文化圏における曜日の名前を取得する場合には、カスタマイズが必要となります。

さらに応用すると、特定の期間における各日の曜日を一覧で取得することも可能です。

例えば、2023年8月の各日の曜日を一覧で取得したい場合のコードは次のようになります。

// 特定の期間の各日の曜日を一覧で取得
const listDaysOfWeekInMonth = (year: number, month: number): string[] => {
    const days = ['日', '月', '火', '水', '木', '金', '土'];
    const result: string[] = [];

    for (let i = 1; i <= 31; i++) {
        const targetDate = new Date(year, month - 1, i);
        if (targetDate.getMonth() === month - 1) {
            result.push(`2023年${month}月${i}日は${days[targetDate.getDay()]}曜日です。`);
        }
    }

    return result;
};

const daysList = listDaysOfWeekInMonth(2023, 8);
daysList.forEach(day => console.log(day));

このコードを利用すると、2023年8月の各日が何曜日であるかをコンソールに表示することができます。

このように、基本の方法をベースにして、さまざまなカスタマイズや拡張を行うことで、TypeScriptでの日付操作を更に活用することができます。

●注意点と対処法

TypeScriptで日付を取り扱う際、直面することがある一般的な問題やその解決策について詳しく解説していきます。

日付は予想外の罠が多いため、その問題点を知っておくことは非常に大切です。

○日付のタイムゾーン問題

日付や時間を取り扱う場面で頻繁に遭遇するのが、タイムゾーンの問題です。

異なるタイムゾーンを持つ国や地域間でデータをやり取りする場合、正確な時刻の認識が必要となります。

例えば、日本で午前9時に保存したデータをアメリカで参照する場合、時差を考慮しなければなりません。

この問題を解決するための一般的な方法は、すべての日時を協定世界時(UTC)で保存し、表示の際にローカルタイムゾーンに変換する方法です。

このコードでは、現在のUTC時間を取得し、それを日本時間に変換する例を表しています。

この例では、Dateオブジェクトを使用してUTC時間を取得し、Intl.DateTimeFormatオブジェクトを使用して日本時間に変換しています。

const nowUTC = new Date();
const japanTime = new Intl.DateTimeFormat('ja-JP', { timeZone: 'Asia/Tokyo', hour: '2-digit', minute: '2-digit', second: '2-digit' }).format(nowUTC);
console.log(`日本の現在の時刻は ${japanTime} です。`);

このコードを実行すると、「日本の現在の時刻は 〇〇:〇〇:〇〇 です」という形で日本の現在の時刻が表示されます。

○日付のフォーマット問題

日付のフォーマットは国や地域によって異なるため、国際的なサービスやアプリケーションを開発する際は特に注意が必要です。

例えば、日本では「YYYY/MM/DD」の形式で日付を表現しますが、アメリカでは「MM/DD/YYYY」の形式が一般的です。

この問題を解決する方法としては、日付を表示する際にユーザのロケールや設定に応じて動的にフォーマットを変更する方法が考えられます。

このコードでは、ユーザのロケールに応じて日付を動的にフォーマットする例を表しています。

この例では、Intl.DateTimeFormatオブジェクトを使用して、異なるロケールでの日付の表示方法を表しています。

const date = new Date();
const formattedDateJa = new Intl.DateTimeFormat('ja-JP').format(date);
const formattedDateUs = new Intl.DateTimeFormat('en-US').format(date);
console.log(`日本のフォーマット: ${formattedDateJa}`);
console.log(`アメリカのフォーマット: ${formattedDateUs}`);

このコードを実行すると、日本のフォーマットとアメリカのフォーマットでの日付がそれぞれ表示されます。

これにより、ユーザのロケールや設定に合わせて日付の表示を変更することができます。

●カスタマイズ方法

年月日の取得を更に効率的に、または特定の要件に合わせて実施したい場合、カスタマイズは欠かせません。

TypeScriptでの日付のカスタマイズ方法を二つ、外部ライブラリの使用とカスタムフォーマットの作成に焦点を当てて詳しく解説します。

○外部ライブラリを使用する方法

TypeScriptの強力な型システムを活かしつつ、日付や時間に関連する多様な操作をサポートする外部ライブラリがいくつか存在します。

中でも「moment」や「date-fns」は非常に人気があります。

このコードでは、date-fnsを使って特定の日付に1週間を加算するコードを表しています。

この例では2023年5月15日に1週間を加算して、2023年5月22日を取得しています。

// date-fnsライブラリをインストールする必要があります。
// npm install date-fns --save

import { addWeeks } from 'date-fns';

const targetDate = new Date(2023, 4, 15); // 2023年5月15日
const newDate = addWeeks(targetDate, 1);
console.log(newDate); // 2023年5月22日

ライブラリを使用することで、日付操作が大幅に簡単になります。

上記のコードを実行すると、コンソールに「2023年5月22日」と表示されます。

○カスタムフォーマットの作成方法

TypeScriptを使用して、特定のフォーマットで年月日を表示する場合のカスタマイズ方法を紹介します。

このコードでは、年月日を「YYYY年MM月DD日」の形式で出力する関数を作成しています。

この例では2023年5月15日を「2023年05月15日」として出力しています。

function formatDate(date: Date): string {
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0'); // 1月は0として返されるので、+1を行います。
    const day = date.getDate().toString().padStart(2, '0');

    return `${year}年${month}月${day}日`;
}

const sampleDate = new Date(2023, 4, 15); // 2023年5月15日
console.log(formatDate(sampleDate)); // 2023年05月15日

上記の関数を利用すると、所望のフォーマットで日付を取得できます。

コードを実行すると、「2023年05月15日」という結果が得られます。

まとめ

TypeScriptでの年月日の取得は、初心者でも容易に取り組むことができるテーマの一つです。

本記事では、その取得方法やカスタマイズのアプローチを10の実用的なサンプルコードを通じて詳しく紹介しました。

これらのサンプルコードを基に、日常の開発作業で日付や時刻に関する機能を効率よく実装することが可能となります。

今回の記事を通じて、TypeScript初心者の方々が年月日の取得やカスタマイズに関する知識を深め、実際の開発に役立てることができれば幸いです。