# General Translation Platform: formatDateTime URL: https://generaltranslation.com/ru/docs/platform/core/reference/gt-class-methods/formatting/format-date-time.mdx --- title: formatDateTime description: Форматирование даты и времени в зависимости от локали. Справочник по API для formatDateTime. --- Форматирует дату и время в соответствии с принятыми для локали правилами в экземпляре [GT](/docs/platform/core/reference/gt-class/constructor). General Translation использует встроенный API `Intl.DateTimeFormat`, чтобы автоматически обрабатывать форматы даты и времени, календари и часовые пояса для целевой локали. ## Обзор [#overview] Вызовите `formatDateTime` для экземпляра [`GT`](/docs/platform/core/reference/gt-class/constructor), передав `Date` и при необходимости объект параметров. Метод возвращает дату и время, отформатированные в виде строки. ```typescript const gt = new GT({ targetLocale: 'de-DE' }); const formatted = gt.formatDateTime(new Date(), { dateStyle: 'medium', timeStyle: 'short', }); // "25.09.2025, 18:06" (форматирование даты и времени на немецком) ``` Сигнатура: ```typescript formatDateTime( date: Date, options?: { locales?: string | string[] } & Intl.DateTimeFormatOptions ): string ``` *Примечание: `formatDateTime` работает локально через `Intl.DateTimeFormat` и не требует API Key. По умолчанию используется локаль рендеринга экземпляра; чтобы переопределить её, передайте `locales`. О форматировании без экземпляра `GT` см. отдельную функцию [`formatDateTime`](/docs/platform/core/reference/utility-functions/formatting/format-date-time).* ## Как это работает [#how-it-works] * **Определение локали.** По умолчанию метод форматирует значения в соответствии с локалями экземпляра. Чтобы переопределить их для одного вызова, передайте `locales` в параметрах. * **На основе Intl.** Форматирование выполняется с помощью встроенного в браузер [`Intl.DateTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat), поэтому поддерживаются все стандартные `Intl.DateTimeFormatOptions`. * **Часовые пояса.** Если указан `timeZone`, часовые пояса обрабатываются корректно; в противном случае используется локальный часовой пояс среды выполнения. ## Параметры [#parameters] | Параметр | Описание | Тип | Необязательный | По умолчанию | | --------------------- | ---------------------------------------------------------------------------------------------------------- | -------- | -------------- | ------------ | | [`date`](#date) | Объект даты, который нужно отформатировать. | `Date` | Нет | — | | [`options`](#options) | Параметры форматирования, расширяющие `Intl.DateTimeFormatOptions` и позволяющие переопределить `locales`. | `object` | Да | — | ### `date` [#date] **Тип** `Date` · **Обязательно** Объект `Date`, который нужно отформатировать. ### `options` [#options] **Тип** `{ locales?: string | string[] } & Intl.DateTimeFormatOptions` · **Необязательно** Параметры форматирования. Расширяет `Intl.DateTimeFormatOptions`, добавляя поле `locales`: | Имя | Описание | Тип | Необязательно | По умолчанию | | ------------------------ | ------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------- | ----------------------------- | | `locales` | Переопределяет локали, используемые для форматирования. | `string \| string[]` | Да | локали экземпляра | | `localeMatcher` | Алгоритм сопоставления локалей. | `'lookup' \| 'best fit'` | Да | `'best fit'` | | `dateStyle` | Общий стиль форматирования даты. | `'full' \| 'long' \| 'medium' \| 'short'` | Да | — | | `timeStyle` | Общий стиль форматирования времени. | `'full' \| 'long' \| 'medium' \| 'short'` | Да | — | | `weekday` | Формат представления дня недели. | `'long' \| 'short' \| 'narrow'` | Да | — | | `era` | Формат представления эры. | `'long' \| 'short' \| 'narrow'` | Да | — | | `year` | Формат представления года. | `'numeric' \| '2-digit'` | Да | — | | `month` | Формат представления месяца. | `'numeric' \| '2-digit' \| 'long' \| 'short' \| 'narrow'` | Да | — | | `day` | Формат представления дня. | `'numeric' \| '2-digit'` | Да | — | | `dayPeriod` | Форматирование периода дня (утро, день и т. д.). | `'narrow' \| 'short' \| 'long'` | Да | — | | `hour` | Формат представления часа. | `'numeric' \| '2-digit'` | Да | — | | `minute` | Формат представления минут. | `'numeric' \| '2-digit'` | Да | — | | `second` | Формат представления секунд. | `'numeric' \| '2-digit'` | Да | — | | `fractionalSecondDigits` | Количество знаков в дробной части секунды. | `1 \| 2 \| 3` | Да | — | | `timeZoneName` | Формат названия часового пояса. | `'long' \| 'short' \| 'longOffset' \| 'shortOffset' \| 'longGeneric' \| 'shortGeneric'` | Да | — | | `timeZone` | Идентификатор часового пояса IANA. | `string` | Да | часовой пояс среды выполнения | | `hour12` | Использовать ли 12-часовой формат времени. | `boolean` | Да | — | | `hourCycle` | Предпочтительный часовой цикл. | `'h11' \| 'h12' \| 'h23' \| 'h24'` | Да | — | | `calendar` | Используемая календарная система. | `string` | Да | `'gregory'` | | `numberingSystem` | Система нумерации цифр. | `string` | Да | `'latn'` | | `formatMatcher` | Алгоритм сопоставления форматов. | `'basic' \| 'best fit'` | Да | `'best fit'` | ## Возвращает [#returns] **Тип** `string` Дата и время, отформатированные в соответствии с правилами целевой локали. ## Примеры [#examples] *Примечание: примеры без явно указанного `timeZone` отображаются в локальном часовом поясе среды выполнения; значения времени ниже приведены для `America/Los_Angeles` (UTC−7 на эту дату).* ```typescript import { GT } from 'generaltranslation'; const gt = new GT({ targetLocale: 'en-US' }); const date = new Date('2024-03-14T14:30:45Z'); // Базовое форматирование даты (используются параметры по умолчанию) console.log(gt.formatDateTime(date)); // Output: "3/14/2024" // Форматирование для немецкой локали console.log(gt.formatDateTime(date, { locales: 'de-DE' })); // Output: "14.3.2024" // Форматирование для японской локали console.log(gt.formatDateTime(date, { locales: 'ja-JP' })); // Output: "2024/3/14" ``` ```typescript // Стили даты и времени const date = new Date('2024-03-14T14:30:45Z'); // Полный стиль даты console.log(gt.formatDateTime(date, { dateStyle: 'full' })); // Output: "Thursday, March 14, 2024" // Длинная дата с коротким временем console.log(gt.formatDateTime(date, { dateStyle: 'long', timeStyle: 'short', })); // Output: "March 14, 2024 at 7:30 AM" // Произвольные компоненты даты console.log(gt.formatDateTime(date, { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', })); // Output: "Thursday, March 14, 2024" ``` ```typescript // Часовой пояс и формат времени const date = new Date('2024-03-14T14:30:45Z'); // Принудительный 12-часовой формат console.log(gt.formatDateTime(date, { hour: 'numeric', minute: '2-digit', hour12: true, })); // Вывод: "7:30 AM" // Принудительный 24-часовой формат console.log(gt.formatDateTime(date, { hour: 'numeric', minute: '2-digit', hour12: false, })); // Вывод: "07:30" // Конкретный часовой пояс console.log(gt.formatDateTime(date, { timeZone: 'America/New_York', dateStyle: 'medium', timeStyle: 'short', })); // Вывод: "Mar 14, 2024, 10:30 AM" ``` ## Заметки [#notes] * Форматирование дат автоматически соответствует принятым для локали правилам. * Для производительности и точности метод использует встроенный в браузер `Intl.DateTimeFormat`. * Если указаны часовые пояса, они обрабатываются корректно.