Розбір дати з рядка

Lua:
Розбір дати з рядка

Як:

Lua не має вбудованої підтримки для маніпулювання датами та часом, крім обмеженої функціональності, яку надають функції os.date і os.time. Однак їх можна використовувати для базового парсингу, а для більш складних вимог можна використати бібліотеку luadate, зовнішню бібліотеку.

Використання os.date і os.time:

-- Перетворення зрозумілої людині дати в мітку часу та назад
local dateString = "2023-09-21 15:00:00"
local pattern = "(%d+)-(%d+)-(%d+) (%d+):(%d+):(%d+)"
local year, month, day, hour, minute, second = dateString:match(pattern)

local timestamp = os.time({
  year = year,
  month = month,
  day = day,
  hour = hour,
  min = minute,
  sec = second
})

-- Перетворення мітки часу назад у зрозумілий формат дати
local formattedDate = os.date("%Y-%m-%d %H:%M:%S", timestamp)
print(formattedDate)  -- Вивід: 2023-09-21 15:00:00

Використання luadate (стороння бібліотека): Щоб використовувати luadate, переконайтесь, що вона встановлена через LuaRocks або ваш менеджер пакетів на вибір. luadate додає широкі можливості парсингу та маніпулювання датами та часом.

local date = require('date')

-- Прямий парсинг рядка дати
local parsedDate = date.parse("2023-09-21 15:00:00")
print(parsedDate:fmt("%Y-%m-%d %H:%M:%S"))  -- Вивід: 2023-09-21 15:00:00

-- Додавання тривалостей
local oneWeekLater = parsedDate:adddays(7)
print(oneWeekLater:fmt("%Y-%m-%d %H:%M:%S"))  -- Вивід: 2023-09-28 15:00:00

Бібліотека luadate пропонує більш інтуїтивний і потужний спосіб роботи з датами, включно з парсингом з рядків, форматуванням та арифметичними операціями над датами, що значно спрощує роботу з тимчасовими даними в Lua.