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中处理时间数据的工作。