TypeScript日付フォーマット解説
TypeScriptで日付/時刻をフォーマットする方法
JavaScriptでは、日付/時刻をフォーマットするために、Date
オブジェクトと組み合わせて、toLocaleString()
やtoISOString()
などのメソッドを使用することが一般的です。
TypeScriptでは、これらのメソッドに加えて、サードパーティライブラリを使用することで、より柔軟なフォーマットが可能になります。
toLocaleString()メソッド
- オプションの引数
const formattedDate = now.toLocaleString('en-US', { year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit', second: '2-digit' }); // 例: "December 31, 2023 11:59:59 PM"
- 基本的なフォーマット
const now = new Date(); const formattedDate = now.toLocaleString(); // 例: "2023-12-31 23:59:59"
toISOString()メソッド
- ISO 8601形式
const formattedDate = now.toISOString(); // 例: "2023-12-31T23:59:59.000Z"
サードパーティライブラリ
- Day.js
import dayjs from 'dayjs'; const formattedDate = dayjs().format('YYYY-MM-DD HH:mm:ss'); // 例: "2023-12-31 23:59:59"
これらの方法を組み合わせることで、さまざまなフォーマットを実現することができます。
注意
- サードパーティライブラリを使用する場合は、プロジェクトの依存関係管理に注意が必要です。
toLocaleString()
のフォーマットはロケール依存であるため、異なる地域で異なる結果が得られる場合があります。
const now = new Date();
// 基本的なフォーマット
const formattedDate = now.toLocaleString(); // 例: "2023-12-31 23:59:59"
// オプションの引数を使用してフォーマットをカスタマイズ
const formattedDateWithOptions = now.toLocaleString('en-US', {
year: 'numeric',
month: 'long',
day: 'numeric',
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
}); // 例: "December 31, 2023 11:59:59 PM"
const formattedDate = now.toISOString(); // 例: "2023-12-31T23:59:59.000Z"
サードパーティライブラリ: Moment.js
import moment from 'moment';
const formattedDate = moment().format('YYYY-MM-DD HH:mm:ss'); // 例: "2023-12-31 23:59:59"
import dayjs from 'dayjs';
const formattedDate = dayjs().format('YYYY-MM-DD HH:mm:ss'); // 例: "2023-12-31 23:59:59"
カスタム関数
Templateリテラル
ライブラリ: Luxon
- 軽量で機能的なライブラリ
import { DateTime } from 'luxon'; const formattedDate = DateTime.now().toFormat('yyyy-MM-dd HH:mm:ss');
ライブラリ: date-fns
- 豊富な機能とパフォーマンス
import { format } from 'date-fns'; const formattedDate = format(new Date(), 'yyyy-MM-dd HH:mm:ss');
- カスタム関数やテンプレートリテラルを使用する場合、フォーマットのロジックを自分で実装する必要があります。
javascript typescript