# generaltranslation: General Translation Core SDK: formatDateTime URL: https://generaltranslation.com/ru/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` | Объект `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' })); // Output: "3/14/2024" // Форматирование для немецкого языка console.log(formatDateTime(date, { locales: 'de-DE' })); // Output: "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` необязателен; если он не указан, используется системная локаль * Используется тот же `Intl.DateTimeFormat`, что и в методе класса GT * Для повышения производительности результаты кэшируются при повторяющихся комбинациях локали и параметров * Поддерживаются все стандартные параметры `Intl.DateTimeFormat` * Если указаны часовые пояса, они обрабатываются корректно * Для разных локалей используются разные форматы даты и времени по умолчанию, а также разные предпочтения между 12- и 24-часовым форматом ## Дальнейшие шаги * Ознакомьтесь с документацией [`Intl.DateTimeFormat`](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) для использования через экземпляр класса