Преобразование даты в строку

Lua:
Преобразование даты в строку

Как это сделать:

В Lua мы используем os.date для форматирования дат в строки. Вот кусочек кода для размышлений.

local now = os.time()
local formatted = os.date("%Y-%m-%d %H:%M:%S", now)
print(formatted)
-- Пример вывода: 2023-04-01 15:24:37

Хотите другой вкус? Настройте шаблон строки.

local friendly_format = os.date("%B %d, %Y")
print(friendly_format)
-- Пример вывода: 01 апреля 2023

Погружение в детали

Функция os.date в Lua построена по образу и подобию функции POSIX strftime. Если прищуриться, вы заметите сходство с семейством функций printf в C - одни корни.

Альтернативы? Конечно. Вы можете заниматься конкатенацией строк и индексацией таблиц — вручную извлекая части даты. Но зачем потеть, когда os.date справляется с этим?

Детали реализации? Функция os.date может вести себя двумя способами:

  • При наличии строки формата, она возвращает отформатированную дату.
  • Если формат опустить, то возвращает таблицу с компонентами даты.

Интересный факт: функции Lua, связанные со временем, используют эпоху в качестве отсчёта — количество секунд с 1 января 1970 года. Эта особенность восходит к Unix-времени.

Смотрите также