32、Lua 中的常用操作系统库

Lua 中的常用操作系统库

os.time ([table])

  • 功能
    按table的内容返回一个时间值(数字),若不带参数则返回当前时间.(在许多系统中该数值是当前距离某个特定时间的秒数。)

  • 说明
    当为函数调用附加一个特殊的时间表时,该函数就是返回距该表描述的时间的数值。这样的时间表有如下的区间:

yeara full year
month01-12
day01-31
hour01-31
min00-59
sec00-59
isdsta boolean true if daylight saying

前三项是必需的,如果未定义后几项,默认时间为正午(12:00:00)。如果是在里约热内卢(格林威治向西三个时区)的一台Unix计算机上(相对时间为1970年1月1日,00:00:00),对于pc机(中国时区而言)有稍微更改,更改了为1970年1月1日,08:00:00,这是因我国与其它国家时间差导致。

例子

print(os.time{year=1970, month=1, day=1,hour=8})

print(os.time{year=1970, month=1, day=1}) --若未定义“时,分,秒”,默认时间为正午(04:00:00)

运行结果

0
14400(14400 = 46060 )

os.date ([format [, time]])

  • 功能
    返回一个按format格式化日期、时间的字串或表

  • 说明
    函数date,其实是time函数的一种“反函数”。它将一个表示日期和时间的数值,转换成更高级的表现形式。其第一个参数是一个格式化字符串,描述了要返回的时间形式。第二个参数就是时间的数字表示,默认为当前的时间。

  • 参数(format)

    • *t:将返一个带year(4位),
    • month(1-12), day (1–31), hour (0-23), min (0-59), sec (0-61), wday (星期几, 星期天为1), yday (年内天数),
    • and isdst (是否为日光节约时间true/false)的带键名的表;
    • 若没有*t则返回一个按C的strftime函数格式化的字符串;
    • 若不带参数,则按当前系统的设置返回格式化的字符串 os.date() <=> os.date(“%c”)

代码

t = os.date("*t", os.time());
for i, v in pairs(t) do
      print(i,"->",v);
end

运行结果:

year -> 2022
month -> 7
day -> 15
hour -> 14
min -> 30
sec -> 0
wday -> 6
yday -> 196
isdst -> false

如果使用带标记(见下表)的特殊字符串,os.data函数会将相应的标记位以时间信息进行填充,得到一个包含时间的字符串。

特殊字符串说明
%a一星期中天数的简称(Wed)
%A一星期中天数的全称(Wednesday)
%b月份的简称(Sep)
%B月份的全称(September)
%c日期和时间(如:09/16/98 23:48:10)
%d一个月中的第几天(16)[0~31]
%H24小时制中的小时数(23)[00~23]
%I12小时制中的小时数(11)[01~12]
%j一年中的第几天(259)[01~366]
%M分钟数(48)[00~59]
%m月份数(09)[01~ 12]
%P上午(am) 或 下午(pm)
%S秒数(10)[00~59]
%w一星期中的第几天(3)[0~6 = 星期天~星期六]
%W一年中的第几个星期0~52
%x日期(09/16/98)
%X时间(23:48:10)
%y两位数的年份(90)[00~99]
%Y完整的年份(2009)
%%字符串%

例子1

print(os.date("today is %A, in %B"))
print(os.date("%X", 906000490))

运行结果

today is 星期三, in 七月
19:30:00

同时,也可以使用明确的字符串格式方式(例如”%m/%d/%Y”)

例子2

print(os.date("%m/%d/%Y", 906000490))

运行结果

07/15/1998
  • 25
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一名技术极客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值