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" (формат даты и времени для немецкого языка)Справочные материалы
Параметры
| Имя | Тип | Описание |
|---|---|---|
date | Date | Объект Date для форматирования |
options? | DateTimeFormatOptions | Необязательные параметры форматирования |
DateTimeFormatOptions
Расширяет Intl.DateTimeFormatOptions дополнительной спецификацией локали:
| Name | Type | Description |
|---|---|---|
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для сведений о календаре, зависящих от локали
Дальнейшие шаги
- См. руководство по форматированию для подробных стратегий форматирования даты и времени
- См. руководство по интернационализации о работе с датами с учётом локали
Насколько полезно это руководство?