Lua - 日期与时间



Lua 提供以下函数来执行所有日期和时间操作,例如获取格式化日期、日期操作、获取当前时间、获取时间差等。

  • date()− 此函数用于获取格式化日期、当前日期

  • time()− 此函数用于根据提供的参数获取特定时间戳

  • clock()− 此函数提供 CPU 时钟时间,可用于计算执行时间

  • difftime()− 此实用程序函数可用于获取两个时间戳之间的秒差

以下示例展示了各种场景。

示例 - 获取当前日期和时间

下面显示了一个获取当前日期和时间的简单示例。

main.lua

currentDate = os.date()
print(currentDate)

输出

运行上述程序时,我们可能会得到类似的输出。

Wed Oct 16 09:28:49 2024

示例 - 获取格式化日期

下面显示了一个获取格式化日期的简单示例。

main.lua

formattedDate = os.date("%d-%m-%Y")
print(formattedDate)

输出

运行上述程序时,我们可能会得到类似的输出。

15-10-2024

格式代码

要指定时间格式,请使用时间模式字符串。在此模式中,所有 ASCII 字母都保留为模式字母,定义如下:

字符 描述 示例
a 缩写星期名 周三
A 完整星期名 星期三
b 缩写月份名 九月
B 完整月份名 九月
c 日期和时间 09/16/98 23:48:10
d 月份中的某一天 (16)[01-31]
H 小时,使用 24 小时制 (23) [00-23]
I 小时,使用 12 小时制 (11) [01-12]
M 分钟 (48) [00-59]
m 月份 (09) [01-12]
p “am”或“pm” (pm)
S (10) [00-61]
w 星期几 (3) [0-6 = 星期日-星期六]
x 日期 09/16/98
X 时间 23:48:10
Y 全年 1998
y 两位数年份 (98) [00-99]
% 字符 `%` %

示例 - 获取秒差

下面显示了一个获取时间戳及其之间差值的简单示例。

main.lua

time1 = os.time({year = 2024, month = 9, day = 15, hour = 8, min = 0})
time2 = os.time({year = 2024, month = 9, day = 15, hour = 9, min = 0})
diff = os.difftime(time2, time1)
print("Time difference:", diff, "seconds")

输出

运行上述程序后,我们将获得以下输出。

Time difference:	3600.0	seconds

示例 - 获取执行时间

下面显示了一个获取任何耗时过程执行时间的简单示例。

main.lua

-- CPU Start Time
startTime = os.clock()

-- a time-consuming task
for i = 1, 10000000 do
   math.sqrt(i)
end

-- CPU End Time
endTime = os.clock()

-- Print the elapsed time
print("Elapsed CPU time:", endTime - startTime, "seconds")

输出

运行上述程序时,我们可能会得到类似的输出。

Elapsed CPU time:	0.225313	seconds
广告