Utility FunctionsFormatting
formatDateTime
locale の規約に基づいて日付と時刻をフォーマットするスタンドアロン関数
概要
スタンドアロンの formatDateTime 関数は、GT インスタンスなしで、locale に固有の慣習に従って日付と時刻をフォーマットします。
GT クラスのメソッドと同等の機能を備えつつ、単体で使用できます。
import { formatDateTime } from 'generaltranslation';
const formatted = formatDateTime(new Date(), {
  locales: 'de-DE',
  dateStyle: 'medium',
  timeStyle: 'short'
});
// 戻り値: "26.09.2025, 17:33"リファレンス
パラメーター
| 名称 | 型 | 説明 | 
|---|---|---|
| date | Date | フォーマット対象の Date オブジェクト | 
| options | DateTimeFormatOptions & { locales?: string | string[] } | 任意の対応ロケールを含められるフォーマット設定 | 
DateTimeFormatOptions
| 名前 | 型 | 説明 | 
|---|---|---|
| locales? | string | string[] | フォーマットに使用する対応ロケール(既定はシステムの locale) | 
| dateStyle? | 'full' | 'long' | 'medium' | 'short' | 日付の総合的な書式スタイル | 
| timeStyle? | 'full' | 'long' | 'medium' | 'short' | 時刻の総合的な書式スタイル | 
| weekday? | 'long' | 'short' | 'narrow' | 曜日の表記方法 | 
| year? | 'numeric' | '2-digit' | 年の表記方法 | 
| month? | 'numeric' | '2-digit' | 'long' | 'short' | 'narrow' | 月の表記方法 | 
| day? | 'numeric' | '2-digit' | 日の表記方法 | 
| hour? | 'numeric' | '2-digit' | 時の表記方法 | 
| minute? | 'numeric' | '2-digit' | 分の表記方法 | 
| second? | 'numeric' | '2-digit' | 秒の表記方法 | 
| timeZone? | string | IANA タイムゾーン識別子 | 
| hour12? | boolean | 12時間制を使用するか | 
戻り値
string - locale の規約に従ってフォーマットされた日付と時刻。
例
基本的な使い方
import { formatDateTime } from 'generaltranslation';
// 明示的なロケールを指定した基本的なフォーマット
console.log(formatDateTime(date, { locales: 'en-US' }));
// 出力: "3/14/2024"
// ドイツ語フォーマット
console.log(formatDateTime(date, { locales: 'de-DE' }));
// 出力: "14.3.2024"
// 複数ロケールのフォールバック
console.log(formatDateTime(date, { 
  locales: ['ja-JP', 'en-US'] 
}));
// 出力: "2024/3/14" (日本語フォーマット)日付と時間のスタイル
const date = new Date('2024-03-14T14:30:45Z');
// フル日付スタイル
console.log(formatDateTime(date, {
  locales: 'en-US',
  dateStyle: 'full'
}));
// 出力: "Thursday, March 14, 2024"
// 長い日付と短い時刻
console.log(formatDateTime(date, {
  locales: 'fr-FR',
  dateStyle: 'long',
  timeStyle: 'short'
}));
// 出力: "14 mars 2024 à 07:30"
// 各ロケールでの短縮形式
const locales = ['en-US', 'de-DE', 'ja-JP'];
locales.forEach(locale => {
  console.log(`${locale}: ${formatDateTime(date, {
    locales: locale,
    dateStyle: 'short',
    timeStyle: 'short'
  })}`);
});
// 出力:
// en-US: 3/14/24, 7:30 AM
// de-DE: 14.03.24, 07:30
// ja-JP: 2024/03/14 7:30タイムゾーンの扱い
const date = new Date('2024-03-14T14:30:45Z');
// 異なるタイムゾーンでフォーマット
const timeZones = [
  'America/New_York',
  'Europe/London', 
  'Asia/Tokyo'
];
timeZones.forEach(timeZone => {
  const formatted = formatDateTime(date, {
    locales: 'en-US',
    timeZone,
    dateStyle: 'medium',
    timeStyle: 'medium'
  });
  console.log(`${timeZone}: ${formatted}`);
});
// 出力はサマータイムによって変わります注意事項
- localesパラメータは任意で、指定がない場合はシステムのロケールが既定値になります
- GT クラスのメソッドと同じ基盤となる Intl.DateTimeFormatを使用します
- 同じ locale/options の組み合わせに対しては、パフォーマンス向上のため結果を内部キャッシュします
- 標準の Intl.DateTimeFormatのあらゆる options をサポートします
- タイムゾーンは指定時に正しく処理されます
- ロケールごとに既定の日付・時刻の書式や、12 時間制/24 時間制の好みが異なります
次のステップ
- さらに多くの options については Intl.DateTimeFormatのドキュメントを参照してください
- 単独の数値フォーマットについては formatNumを参照
- 単独のメッセージフォーマットについては formatMessageを参照
- インスタンスベースの利用方法については GT クラスの formatDateTimeを参照
- 相対時間のフォーマットについては formatRelativeTimeを参照
このガイドはどうでしたか?

