GT ClassMethodsFormatting

formatDateTime

Справочник API по методу formatDateTime для форматирования дат и времени согласно локальным правилам

Обзор

Метод formatDateTime форматирует дату и время в соответствии с локальными нормами, используя Internationalization API. Он автоматически учитывает форматы дат и времени, календари и часовые пояса в зависимости от целевой локали.

const gt = new GT({ targetLocale: 'de-DE' });

const formatted = gt.formatDateTime(new Date(), {
  dateStyle: 'medium',
  timeStyle: 'short'
});
// Возвращает: "25.09.2025, 18:06" (формат даты и времени для немецкого языка)

Справочные материалы

Параметры

ИмяТипОписание
dateDateОбъект Date для форматирования
options?DateTimeFormatOptionsНеобязательные параметры форматирования

DateTimeFormatOptions

Расширяет Intl.DateTimeFormatOptions дополнительной спецификацией локали:

NameTypeDescription
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?stringИдентификатор часового пояса IANA
hour12?booleanИспользовать 12‑часовой формат времени
hourCycle?'h11' | 'h12' | 'h23' | 'h24'Предпочтительный часовой цикл
calendar?stringИспользуемая календарная система
numberingSystem?stringСистема записи чисел
formatMatcher?'basic' | 'best fit'Алгоритм сопоставления форматов (по умолчанию: 'best fit')

Возвращает

string — отформатированные дата и время в соответствии с правилами локали.


Примеры

Базовое форматирование дат и времени

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));
// Результат: "3/14/2024"

// Форматирование для немецкой локали
console.log(gt.formatDateTime(date, { locales: 'de-DE' }));
// Результат: "14.3.2024"

// Форматирование для японской локали
console.log(gt.formatDateTime(date, { locales: 'ja-JP' }));
// Результат: "2024/3/14"

Форматы даты и времени

const date = new Date('2024-03-14T14:30:45Z');

// Полный стиль даты
console.log(gt.formatDateTime(date, { dateStyle: 'full' }));
// Результат: "Thursday, March 14, 2024"

// Длинная дата с коротким временем
console.log(gt.formatDateTime(date, {
  dateStyle: 'long',
  timeStyle: 'short'
}));
// Результат: "March 14, 2024 at 7:30 AM"

// Настраиваемые компоненты даты
console.log(gt.formatDateTime(date, {
  weekday: 'long',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
}));
// Результат: "Thursday, March 14, 2024"

Часовой пояс и формат времени

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"

Примечания

  • Формат даты автоматически соответствует правилам выбранной локали
  • Метод использует встроенный в браузер Intl.DateTimeFormat для максимальной производительности и точности
  • Часовые пояса корректно учитываются при их указании

Связанные методы

  • Ознакомьтесь с документацией по Intl.DateTimeFormat для дополнительных параметров
  • См. formatRelativeTime для форматирования относительного времени («2 days ago»)
  • См. formatMessage для форматирования сообщений с подстановкой дат
  • См. автономную функцию formatDateTime для использования без экземпляра GT
  • См. getLocaleProperties для сведений о календаре, зависящих от локали

Дальнейшие шаги

Насколько полезно это руководство?

formatDateTime