【React】Luxonを活用したNode.jsでの効率的な日時操作

Node.jsを使った開発において、日時の操作は頻繁に必要となります。
従来、Moment.jsが日時操作の定番ライブラリでしたが、軽量かつモダンな設計のLuxonが登場し、多くのプロジェクトで採用されています。
本記事では、Luxonを使用した基本的な日時操作から、応用例まで詳しく解説します。

Luxonの導入方法

まずはLuxonをプロジェクトに追加しましょう。

npm install luxon

これで準備完了です。

Luxonでの基本的な日時操作

現在の日時を取得する

Luxonを使用して現在の日時を取得するには、以下のコードを使用します。

const { DateTime } = require('luxon');

const now = DateTime.now();
console.log(now.toISO()); // ISO 8601形式で出力

DateTime.now()で現在の日時を簡単に取得でき、toISO()を使用してISO 8601形式の文字列として出力できます。

1時間後の日時を取得する

以下のコードで現在時刻から1時間後の日時を取得可能です。

const oneHourLater = DateTime.now().plus({ hours: 1 });
console.log(oneHourLater.toISO());

特定の日時を生成する

指定した年、月、日、時刻の日時を生成する方法です。

const specificDate = DateTime.fromObject({
    year: 2038,
    month: 1,
    day: 1,
    hour: 0,
    minute: 0,
    second: 0
});
console.log(specificDate.toISO());

fromObjectメソッドを使用して、自由に日時を構成できます。

日時のフォーマット

Luxonでは、日時のフォーマットをカスタマイズ可能です。

const formattedDate = DateTime.now().toFormat('yyyy-MM-dd HH:mm:ss');
console.log(formattedDate); // 例: 2025-01-03 14:30:00

toFormatメソッドにフォーマット文字列を渡すだけで、任意の形式に変換できます。

日時の差分を計算

2つの日時の間の差分を計算することも簡単です。

const start = DateTime.now();
const end = start.plus({ days: 2, hours: 5 });
const diff = end.diff(start, ['days', 'hours']);
console.log(diff.toObject()); // { days: 2, hours: 5 }

Luxonの利点

  • モダンなAPI設計:Moment.jsに比べて軽量で洗練されたAPI
  • タイムゾーンのサポート:デフォルトでIANAタイムゾーンデータベースを使用
  • ISO 8601対応:国際標準フォーマットを簡単に操作可能

Luxonは、シンプルな日時操作から高度なタイムゾーン管理まで、多岐にわたる機能を提供しています。


Amazonベストセラー

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA