tech.chakapoko.com
Home / Node.js / 日時

[JavaScript][Node.js]Luxon の使い方。日付や時刻の計算、文字列と日時の相互変換など

インストール

$ npm install --save luxon

現在時刻を取得する

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

const now = DateTime.local();
console.log(now.toString());

実行結果:

2020-09-15T16:30:33.347+09:00

日時のインスタンスを作成する

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

const dateTime = DateTime.local(2020, 9, 15, 12, 34, 56);
console.log(dateTime.toString());

実行結果:

2020-09-15T12:34:56.000+09:00

日時を文字列に変換(フォーマット)する

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

const now = DateTime.local();

console.log(now.setLocale("en").toLocaleString(DateTime.DATETIME_FULL));
console.log(now.toISO());
console.log(now.toRFC2822());
console.log(now.toFormat("yyyy-LL-dd TT.SSS"));

実行結果:

September 15, 2020, 5:01 PM GMT+9
2020-09-15T17:01:51.889+09:00
Tue, 15 Sep 2020 17:01:51 +0900
2020-09-15 17:01:51.889

文字列をパースして日時に変換する

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

const dateTime = DateTime.fromFormat(
  "2020-09-15 17:01:51.889",
  "yyyy-LL-dd TT.SSS"
);
console.log(dateTime.toString());

実行結果:

2020-09-15T17:01:51.889+09:00

日時を Unix タイムスタンプに変換する

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

const now = DateTime.local();
console.log(now.toMillis());
console.log(now.toSeconds());

実行結果:

1600157566073
1600157566.073

Unix タイムスタンプを日時に変換する

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

const dateTime1 = DateTime.fromMillis(1600157566073);
const dateTime2 = DateTime.fromSeconds(1600157566);

console.log(dateTime1.toString());
console.log(dateTime2.toString());

実行結果:

2020-09-15T17:12:46.073+09:00
2020-09-15T17:12:46.000+09:00

日時の計算を行う

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

const dateTime = DateTime.fromFormat(
  "2020-09-15 17:01:51.889",
  "yyyy-LL-dd TT.SSS"
);

console.log(dateTime.plus({ month: 10 }).toString());
console.log(dateTime.minus({ day: 10 }).toString());

実行結果:

2021-07-15T17:01:51.889+09:00
2020-09-05T17:01:51.889+09:00