# General Translation Platform: formatDateTime URL: https://generaltranslation.com/ru/docs/platform/core/reference/utility-functions/formatting/format-date-time.mdx --- title: formatDateTime description: Форматирование дат и времени без экземпляра GT. Справочник API для formatDateTime. --- [`formatDateTime`](/docs/platform/core/reference/gt-class-methods/formatting/format-date-time) — это автономная вспомогательная функция из библиотеки General Translation Core, которая форматирует даты и время в соответствии с правилами конкретной локали. Она возвращает для `Date` строку, отформатированную с учётом локали. ## Обзор [#overview] Импортируйте `formatDateTime` напрямую из `generaltranslation` и вызовите её, передав `Date` и объект параметров. Для этого не нужен API-ключ или экземпляр [GT](/docs/platform/core/reference/gt-class/constructor). Если нужно форматирование на основе экземпляра, которое наследует его локаль, используйте метод [`formatDateTime`](/docs/platform/core/reference/gt-class-methods/formatting/format-date-time) у экземпляра [`GT`](/docs/platform/core/reference/gt-class/constructor). ```typescript import { formatDateTime } from 'generaltranslation'; const formatted = formatDateTime(new Date(), { locales: 'de-DE', dateStyle: 'medium', timeStyle: 'short', }); // Возвращает строку, отформатированную по локали, например "26.09.2025, 17:33" ``` Сигнатура: ```typescript formatDateTime( date: Date, options?: { locales?: string | string[] } & Intl.DateTimeFormatOptions ): string ``` ## Как это работает [#how-it-works] * **Базовый API.** Использует тот же [`Intl.DateTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat), что и метод класса GT, поэтому поддерживаются все стандартные параметры `Intl.DateTimeFormat`. * **Определение локали.** Если `locales` — это массив, локали проверяются по порядку. Если `locales` не указан, используется локаль библиотеки по умолчанию — `en`. * **Часовые пояса.** Вывод учитывает параметр `timeZone`, если он указан; в противном случае используется локальный часовой пояс среды выполнения. В разных локалях различаются форматы даты и времени по умолчанию, а также предпочтения между 12- и 24-часовым форматами. * **Кэширование.** Результаты внутренне кэшируются для повышения производительности при повторяющихся комбинациях локалей и параметров. ## Параметры [#parameters] | Параметр | Описание | Тип | Необязательный | По умолчанию | | --------------------- | -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- | -------------- | ------------ | | [`date`](#date) | Объект даты для форматирования. | `Date` | Нет | — | | [`options`](#options) | Конфигурация форматирования, включая целевую локаль или локали, а также любые параметры `Intl.DateTimeFormat`. | `{ locales?: string \| string[] } & Intl.DateTimeFormatOptions` | Да | `{}` | ### `date` [#date] **Тип** `Date` · **Обязательно** Объект `Date`, который нужно отформатировать. ### `options` [#options] **Тип** `{ locales?: string | string[] } & Intl.DateTimeFormatOptions` · **Необязательно** · **По умолчанию** `{}` Параметры форматирования. Помимо `locales`, можно передавать любые параметры [`Intl.DateTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat). Наиболее распространённые поля: | Свойство | Описание | Тип | Необязательно | По умолчанию | | ----------- | ------------------------------------------------------------------------------------ | --------------------------------------------------------- | ------------- | ------------ | | `locales` | Локаль(и) для форматирования. Если передан массив, они будут проверяться по порядку. | `string \| string[]` | Да | `en` | | `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` | Идентификатор часового пояса IANA. | `string` | Да | — | | `hour12` | Использовать ли 12-часовой формат времени. | `boolean` | Да | — | ## Возвращаемое значение [#returns] **Тип** `string` Дата и время, отформатированные в соответствии с правилами локали. ## Примеры [#examples] ```typescript import { formatDateTime } from 'generaltranslation'; const date = new Date('2024-03-14T14:30:45Z'); // Базовое форматирование с явно указанной локалью console.log(formatDateTime(date, { locales: 'en-US', timeZone: 'UTC' })); // Вывод: "3/14/2024" // Форматирование для немецкой локали console.log(formatDateTime(date, { locales: 'de-DE', timeZone: 'UTC' })); // Вывод: "14.3.2024" // Несколько резервных локалей console.log(formatDateTime(date, { locales: ['ja-JP', 'en-US'], timeZone: 'UTC' })); // Вывод: "2024/3/14" (японский формат) ``` ```typescript // Стили даты и времени const date = new Date('2024-03-14T14:30:45Z'); // Полный стиль даты console.log(formatDateTime(date, { locales: 'en-US', dateStyle: 'full', timeZone: 'UTC', })); // Вывод: "Thursday, March 14, 2024" // Длинная дата с кратким временем console.log(formatDateTime(date, { locales: 'fr-FR', dateStyle: 'long', timeStyle: 'short', timeZone: 'UTC', })); // Вывод: "14 mars 2024 à 14:30" ``` ```typescript // Обработка часовых поясов 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}`); }); // Вывод зависит от перехода на летнее время ``` ## Примечания [#notes] * Использует тот же `Intl.DateTimeFormat`, что и метод класса GT. * Для повышения производительности результаты кэшируются для повторяющихся сочетаний локали и параметров. * Поддерживаются все стандартные параметры `Intl.DateTimeFormat`. * Если указан часовой пояс, он обрабатывается корректно. Вывод без фиксированного `timeZone` зависит от среды выполнения.