# generaltranslation: General Translation Core SDK: formatDateTime URL: https://generaltranslation.com/ja/docs/core/functions/formatting/format-date-time.mdx --- title: formatDateTime description: ロケールの慣例に従って日付と時刻をフォーマットする単体関数 --- ## 概要 スタンドアロンの `formatDateTime` 関数は、GT インスタンスがなくても、ロケール固有の規則に従って日付と時刻を整形できます。 GT クラスのメソッドと同じ機能を提供しますが、独立して使用できます。 ```typescript import { formatDateTime } from 'generaltranslation'; const formatted = formatDateTime(new Date(), { locales: 'de-DE', dateStyle: 'medium', timeStyle: 'short' }); // 戻り値: "26.09.2025, 17:33" ``` ## リファレンス ### パラメータ | 名前 | 型 | 説明 | | --------- | ---------------------------------------------------------- | ------------------------- | | `date` | `Date` | フォーマット対象の日付オブジェクト | | `options` | `DateTimeFormatOptions & { locales?: string \| string[] }` | 任意の `locales` を含むフォーマット設定 | ### DateTimeFormatOptions | Name | Type | Description | | ------------ | --------------------------------------------------------- | --------------------------------- | | `locales?` | `string \| string[]` | フォーマットに使用するロケール (デフォルトはシステムロケール) | | `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` - ロケールの慣例に従ってフォーマットされた日時。 *** ## 例 ### 基本的な使い方 ```typescript copy 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"(日本語フォーマット) ``` ### 日付と時刻の形式 ```typescript copy 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 ``` ### タイムゾーンの扱い ```typescript copy 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` を内部的に使用します * 同じロケールとオプションの組み合わせを繰り返し使う場合のパフォーマンス向上のため、結果は内部でキャッシュされます * 標準の `Intl.DateTimeFormat` オプションをすべてサポートしています * タイムゾーンを指定した場合も正しく処理されます * ロケールによって、日付/時刻のデフォルトの形式や 12 時間制・24 時間制の設定が異なります ## 次のステップ * さらに多くのオプションについては、[`Intl.DateTimeFormat` documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat)を参照してください * 単体で数値をフォーマットする場合は、[`formatNum`](/docs/core/functions/formatting/format-num)を参照してください * 単体でメッセージをフォーマットする場合は、[`formatMessage`](/docs/core/functions/formatting/format-message)を参照してください * インスタンスベースの使用方法については、GT クラスの [`formatDateTime`](/docs/core/class/methods/formatting/format-date-time)を参照してください