Utility FunctionsFormatting

formatDateTime

Отдельная функция для форматирования дат и времени по правилам локали

Обзор

Отдельная функция formatDateTime форматирует дату и время в соответствии с правилами конкретной локали и не требует экземпляра GT. Она предоставляет ту же функциональность, что и метод класса GT, но может использоваться независимо.

import { formatDateTime } from 'generaltranslation';

const formatted = formatDateTime(new Date(), {
  locales: 'de-DE',
  dateStyle: 'medium',
  timeStyle: 'short'
});
// Результат: «26.09.2025, 17:33»

Справочник

Параметры

ИмяТипОписание
dateDateОбъект Date для форматирования
optionsDateTimeFormatOptions & { locales?: string | string[] }Параметры форматирования с необязательным указанием локалей

DateTimeFormatOptions

ИмяТипОписание
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 — форматированные дата и время в соответствии с правилами локали.


Пример

Базовое использование

import { formatDateTime } from 'generaltranslation';

// Базовое форматирование с явным указанием локали
console.log(formatDateTime(date, { locales: 'en-US' }));
// Результат: «3/14/2024»

// Немецкое форматирование
console.log(formatDateTime(date, { locales: 'de-DE' }));
// Результат: «14.3.2024»

// Несколько запасных локалей
console.log(formatDateTime(date, { 
  locales: ['ja-JP', 'en-US'] 
}));
// Результат: «2024/3/14» (японский формат)

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

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

Работа с часовыми поясами

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 для дополнительных возможностей
  • См. formatNum для самостоятельного форматирования чисел
  • См. formatMessage для самостоятельного форматирования сообщений
  • См. метод класса GT formatDateTime для использования на экземплярах
  • См. formatRelativeTime для форматирования относительного времени

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

formatDateTime