Analysering av en dato fra en streng

Lua:
Analysering av en dato fra en streng

Hvordan:

Lua har ikke innebygget støtte for dato- og tidsmanipulering utover den begrensede funksjonaliteten som tilbys av os.date og os.time-funksjonene. Imidlertid kan disse benyttes for grunnleggende parsing, og for mer komplekse krav, kan luadate-biblioteket, et eksternt bibliotek, benyttes.

Bruk av os.date og os.time:

-- Konverter en menneskelesbar dato til et tidsstempel og tilbake
local dateString = "2023-09-21 15:00:00"
local pattern = "(%d+)-(%d+)-(%d+) (%d+):(%d+):(%d+)"
local år, måned, dag, time, minutt, sekund = dateString:match(pattern)

local tidsstempel = os.time({
  year = år,
  month = måned,
  day = dag,
  hour = time,
  min = minutt,
  sec = sekund
})

-- Konverter tidsstempel tilbake til et menneskelesbart format
local formatertDato = os.date("%Y-%m-%d %H:%M:%S", tidsstempel)
print(formatertDato)  -- Utdata: 2023-09-21 15:00:00

Bruk av luadate (tredjepartsbibliotek): For å bruke luadate, sørg for at det er installert via LuaRocks eller pakkebehandleren du foretrekker. luadate tilfører omfattende parsing og manipuleringsmuligheter for dato og tid.

local date = require('date')

-- Parse en datostreng direkte
local parsetDato = date.parse("2023-09-21 15:00:00")
print(parsetDato:fmt("%Y-%m-%d %H:%M:%S"))  -- Utdata: 2023-09-21 15:00:00

-- Legge til varigheter
local enUkeSenere = parsetDato:adddays(7)
print(enUkeSenere:fmt("%Y-%m-%d %H:%M:%S"))  -- Utdata: 2023-09-28 15:00:00

luadate-biblioteket tilbyr en mer intuitiv og kraftfull måte å jobbe med datoer på, inkludert parsing fra strenger, formatering, og aritmetiske operasjoner på datoer, noe som betydelig forenkler arbeid med tidsdata i Lua.