Moment.js предоставляет мощные возможности для работы с датами и временем, включая поддержку различных локалей. Локали позволяют отображать даты, месяцы, дни недели и форматы времени в соответствии с языковыми и культурными особенностями. Библиотека поставляется с набором предустановленных локалей, и каждая из них может быть загружена и активирована по необходимости.
По умолчанию Moment.js использует английскую локаль
(en). Для работы с другими локалями необходимо подключить
соответствующие модули локалей:
import moment from 'moment';
import 'moment/locale/ru'; // Подключение русской локали
После подключения локали её можно активировать с помощью метода
moment.locale():
moment.locale('ru');
console.log(moment().format('LLLL')); // Понедельник, 21 мая 2026 г., 15:30
Moment.js включает десятки локалей для разных языков и регионов. Основные локали включают:
Полный список локалей можно найти в официальной документации
Moment.js, а также в папке locale библиотеки, где каждая
локаль представлена отдельным файлом.
Для установки локали по умолчанию во всей библиотеке используется:
moment.locale('fr'); // Все последующие даты будут в формате французской локали
Эта установка влияет на все создаваемые объекты Moment до смены локали. Для локальной временной смены можно использовать временный контекст:
const date = moment();
console.log(date.locale('de').format('LLLL')); // Локально отображаемая дата на немецком
Moment.js позволяет создавать свои локали, расширяя стандартные:
moment.defineLocale('custom', {
months: 'Месяц1_Месяц2_Месяц3_Месяц4_Месяц5_Месяц6_Месяц7_Месяц8_Месяц9_Месяц10_Месяц11_Месяц12'.split('_'),
weekdays: 'Вс_Пн_Вт_Ср_Чт_Пт_Сб'.split('_'),
longDateFormat: {
LT: 'HH:mm',
LTS: 'HH:mm:ss',
L: 'DD/MM/YYYY',
LL: 'D MMMM YYYY',
LLL: 'D MMMM YYYY LT',
LLLL: 'dddd, D MMMM YYYY LT'
}
});
moment.locale('custom');
console.log(moment().format('LLLL'));
Это позволяет адаптировать отображение даты под специфические требования проекта или корпоративные стандарты.
Moment.js предоставляет метод moment.locales(),
возвращающий массив всех подключенных локалей:
console.log(moment.locales());
// ['en', 'ru', 'de', 'fr', 'es', ...]
С помощью этого метода можно динамически проверять, какие локали загружены и использовать их в интерфейсе приложения.
moment.locale() для глобальной смены
локали и moment().locale() для временной локальной.Такой подход позволяет полностью контролировать форматирование даты и времени и обеспечивает корректное отображение данных для пользователей из разных стран и регионов.