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»Справочник
Параметры
| Имя | Тип | Описание |
|---|---|---|
date | Date | Объект Date для форматирования |
options | DateTimeFormatOptions & { 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для форматирования относительного времени
Насколько полезно это руководство?