# General Translation Platform: formatDateTime
URL: https://generaltranslation.com/ru/docs/platform/core/reference/utility-functions/formatting/format-date-time.mdx
Docs index: https://generaltranslation.com/llms.txt
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` · **Необязательный** · **По умолчанию** `{}`

Параметр форматирования. В таблице перечислены распространённые параметры, доступные в опубликованных типах Core, и их фактические значения по умолчанию в Core. (Дополнительные сведения о стандарте и особенностях среды выполнения см. в [параметрах конструктора `Intl.DateTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#options)).

| Свойство                 | Описание                                                                               | Тип                                                                                     | Необязательный | По умолчанию                                     |
| ------------------------ | -------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | -------------- | ------------------------------------------------ |
| `locales`                | Локаль или локали для форматирования. При передаче массива они проверяются по порядку. | `string \| string[]`                                                                    | Да             | `en`                                             |
| `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'`                                                                | Да             | `'numeric'`, если не заданы стили или компоненты |
| `month`                  | Представление месяца.                                                                  | `'numeric' \| '2-digit' \| 'long' \| 'short' \| 'narrow'`                               | Да             | `'numeric'`, если не заданы стили или компоненты |
| `day`                    | Представление дня.                                                                     | `'numeric' \| '2-digit'`                                                                | Да             | `'numeric'`, если не заданы стили или компоненты |
| `dayPeriod`              | Ширина обозначения периода суток в 12-часовых циклах.                                  | `'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 или поддерживаемый идентификатор смещения UTC.            | `string`                                                                                | Да             | часовой пояс среды выполнения                    |
| `hour12`                 | Использовать ли 12-часовой формат времени.                                             | `boolean`                                                                               | Да             | зависит от локали                                |
| `hourCycle`              | Предпочтительный часовой цикл.                                                         | `'h11' \| 'h12' \| 'h23' \| 'h24'`                                                      | Да             | зависит от локали                                |
| `calendar`               | Используемая календарная система.                                                      | `string`                                                                                | Да             | `'gregory'`                                      |
| `numberingSystem`        | Система нумерации цифр.                                                                | `string`                                                                                | Да             | `'latn'`                                         |
| `formatMatcher`          | Алгоритм сопоставления форматов.                                                       | `'basic' \| 'best fit'`                                                                 | Да             | `'best fit'`                                     |

`dateStyle` и `timeStyle` можно комбинировать друг с другом, но не с отдельными параметрами компонентов даты и времени, такими как `year`, `month` или `hour`. `hour12` переопределяет `hourCycle`, а `dayPeriod` влияет только на 12-часовые циклы. Core устанавливает `calendar: 'gregory'` и `numberingSystem: 'latn'`; в остальных случаях сам `Intl.DateTimeFormat` выбирает оба значения на основе локали.

## Возвращаемое значение [#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` зависит от среды выполнения.

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
