Analysera ett datum från en sträng

Lua:
Analysera ett datum från en sträng

Hur:

Lua har inte inbyggt stöd för hantering av datum och tid utöver den begränsade funktionaliteten som tillhandahålls av funktionerna os.dateoch os.time. Dessa kan dock utnyttjas för grundläggande tolkning, och för mer komplexa krav kan luadate-biblioteket, ett externt bibliotek, användas.

Användning av os.date och os.time:

-- Konvertera ett läsbart datum till en tidsstämpel och tillbaka
local dateString = "2023-09-21 15:00:00"
local pattern = "(%d+)-(%d+)-(%d+) (%d+):(%d+):(%d+)"
local år, månad, dag, timme, minut, sekund = dateString:match(pattern)

local tidsstämpel = os.time({
  år = år,
  månad = månad,
  dag = dag,
  timme = timme,
  min = minut,
  sek = sekund
})

-- Konvertera tidsstämpel tillbaka till ett format läsbart för människor
local formateratDatum = os.date("%Y-%m-%d %H:%M:%S", tidsstämpel)
print(formateratDatum)  -- Utdata: 2023-09-21 15:00:00

Användning av luadate (tredjepartsbibliotek): För att använda luadate, se till att det är installerat via LuaRocks eller din valda pakethanterare. luadate lägger till omfattande funktioner för tolkning och hantering av datum och tid.

local date = require('date')

-- Tolkning av en datumsträng direkt
local tolkatDatum = date.parse("2023-09-21 15:00:00")
print(tolkatDatum:fmt("%Y-%m-%d %H:%M:%S"))  -- Utdata: 2023-09-21 15:00:00

-- Lägga till varaktigheter
local enVeckaSenare = tolkatDatum:adddays(7)
print(enVeckaSenare:fmt("%Y-%m-%d %H:%M:%S"))  -- Utdata: 2023-09-28 15:00:00

luadate-biblioteket erbjuder ett mer intuitivt och kraftfullt sätt att arbeta med datum, inklusive tolkning från strängar, formatering och aritmetiska operationer på datum, vilket avsevärt förenklar hanteringen av tidsdata i Lua.