В библиотеке Luxon каждый экземпляр DateTime имеет
строго определённое стандартное строковое представление. При неявном
преобразовании в строку используется ISO-формат, отражающий момент
времени с учётом временной зоны объекта.
Стандартное поведение задаётся через toISO(), что делает
ISO 8601 фундаментом системы вывода:
При приведении к строке через String(DateTime) или
конкатенацию с текстом используется тот же механизм
ISO-представления.
Luxon предоставляет набор методов для строгой сериализации даты и времени в различные варианты ISO 8601.
Метод:
toISO()Формирует строку вида:
2026-05-23T14:30:00.000+06:00Особенности:
toISODate() — только датаtoISOTime() — только времяtoISOWeekDate() — недельная дата ISOКаждый вариант используется в случаях, когда требуется минимальный объём данных без потери семантики.
Luxon поддерживает форматы, ориентированные на сетевые протоколы и заголовки HTTP.
Метод:
toRFC2822()Формат:
Sat, 23 May 2026 14:30:00 +0600Используется в почтовых и устаревших веб-стандартах.
Метод:
toHTTP()Формат:
Sat, 23 May 2026 08:30:00 GMTОсобенности:
Основной механизм гибкого вывода реализован через метод:
toFormat(formatString)Система основана на токенах, определяющих структуру строки.
yyyy — годMM — месяцdd — деньHH — часы (24-часовой формат)mm — минутыss — секундыПример логики формирования:
DateTime.toFormat('yyyy-MM-dd HH:mm:ss')
Результат:
2026-05-23 14:30:00Форматирование допускает свободное комбинирование:
Пример:
dd/MM/yyyy 'в' HH:mm
Результат:
23/05/2026 в 14:30Поддерживаются элементы календарной информации:
DDD — день годаW — неделя годаE — день неделиZZ — смещение временной зоныЭто позволяет формировать представления, ориентированные на аналитические и логистические задачи.
Luxon интегрируется с ECMAScript Internationalization API, обеспечивая локализованные форматы.
Метод:
toLocaleString([formatOptions])Поддерживает предустановленные форматы:
DateTime.DATE_FULLDateTime.DATE_MEDDateTime.DATETIME_SHORTDateTime.TIME_SIMPLEПример поведения:
Локаль влияет на:
При смене локали изменяется только слой представления, без модификации внутреннего timestamp.
Система вывода тесно связана с понятием временной зоны.
При изменении зоны:
Пример поведения:
Метод:
toUTC()Переключает объект в универсальное время:
+00:00;Luxon поддерживает автоматическое преобразование в JSON.
Метод:
toJSON()Возвращает ISO-строку:
JSON.stringify;Метод:
valueOf()Возвращает числовое значение:
Система вывода распространяется и на Duration.
Метод:
toISO()Пример:
PT2H30M15SСтруктура:
P — периодT — разделитель времениH, M, S — компонентыМетод:
toFormat()Позволяет задавать человекочитаемые формы:
Особенность заключается в отсутствии календарного контекста: вывод опирается только на длительность.
Объект Interval поддерживает сериализацию границ.
toString() — человекочитаемое представление
диапазонаtoISO() — ISO-интервал вида:2026-05-23T10:00:00+06:00/2026-05-23T12:00:00+06:00
Характеристики:
Система Luxon определяет несколько уровней приоритета представления:
toISO, toFormat,
toRFC2822)toLocaleString)valueOf,
toString)toJSON)Такое разделение позволяет контролировать поведение объекта в разных контекстах — от логирования до сетевого обмена.
Разделение типов вывода основано на двух принципах:
В результате:
Некоторые параметры объекта влияют на итоговую строку:
Изменение этих параметров не модифицирует момент времени, но полностью меняет строковое представление.
При отсутствии части данных система вывода:
Например:
Все методы вывода согласованы между собой:
toISO() является базовым источником истины;toFormat() строится поверх внутренних календарных
значений;toLocaleString() является отображением поверх Intl
API;toJSON() повторяет ISO-поведение.Эта согласованность исключает расхождения между различными представлениями одного и того же момента времени.