Lua 接口说明书 · 996引擎LUA API REFERENCE · 5.1/5.3

操作系统

OS

系统接口:时间日期、冷却计时、文件改名删除 | 本页 11 个接口。登录全站学员账号后:给函数打 ✓ 记录学习进度、写私人备注。

os.clock ()
📖 用途

返回程序占用的 CPU 时间(秒,小数)。用于测某段代码的执行耗时。

📥 参数

无参数

📤 返回值

CPU 秒数(number)

💻 用法案例
local t = os.clock()
-- ...干重活...
print('耗时', os.clock() - t, '秒')
os.date ([format [, time]])
📖 用途

格式化日期时间。format 含 %Y年 %m月 %d日 %H时 %M分 %S秒;"*t" 返回年月日时分秒的表;无参返回默认格式串。做每日限次/整点活动必备。

📥 参数
参数说明
format格式串 或 "*t"
time时间戳,默认当前
📤 返回值

格式化字符串 或 时间表

💻 用法案例
print(os.date('%Y-%m-%d %H:%M'))   --> 2026-09-20 10:30
local d = os.date('*t')
print(d.year, d.month, d.day, d.hour)

-- 每日限次: 比较日期串
local today = os.date('%Y%m%d')
os.difftime (t2, t1)
📖 用途

返回两个时间戳的差 t2 - t1(秒,浮点)。os.time 值相减通常已够用。

📥 参数
参数说明
t2较晚时间
t1较早时间
📤 返回值

秒差

💻 用法案例
print(os.difftime(os.time{hour=12}, os.time{hour=8}))   --> 14400
os.execute ([command])
📖 用途

调用操作系统执行外部命令。安全风险极大,游戏服务器环境通常禁用。

📥 参数
参数说明
command系统命令串
📤 返回值

成功 true;失败 nil;省略命令检测 shell

💻 用法案例
-- print(os.execute('echo hi'))
说明:996 服务端:禁止在业务脚本里使用,会有安全隐患并可能被引擎封禁。
os.exit ([code])
📖 用途

终止宿主程序(对游戏来说就是直接关引擎/客户端!)。开发脚本绝对不要调用。

📥 参数
参数说明
code退出码,true/数字
📤 返回值

无(不会返回)

💻 用法案例
-- os.exit()   -- 严禁在游戏脚本中调用!
说明:996 严禁使用:前端调用会导致客户端直接退出,服务端调用等于关服。
os.getenv (varname)
📖 用途

读取系统环境变量的值,不存在返回 nil。

📥 参数
参数说明
varname环境变量名
📤 返回值

变量值 或 nil

💻 用法案例
print(os.getenv('PATH'))
os.remove (filename)
📖 用途

删除文件(或空目录)。失败返回 nil+错误。

📥 参数
参数说明
filename文件路径
📤 返回值

成功 true;失败 nil, err

💻 用法案例
os.remove('临时.txt')
os.rename (old, new)
📖 用途

重命名文件/目录(也可当移动用)。失败返回 nil+错误。

📥 参数
参数说明
old旧名
new新名
📤 返回值

成功 true;失败 nil, err

💻 用法案例
os.rename('old.lua', 'new.lua')
os.setlocale (locale [, category])
📖 用途

设置本地化区域(影响字符分类/数字格式等)。游戏脚本一般不动它。

📥 参数
参数说明
locale区域名 或 nil 查询
category类别,默认 "all"
📤 返回值

当前区域名 或 nil

💻 用法案例
print(os.setlocale())   --> 查询当前区域
os.time ([table])
📖 用途

取时间戳:无参=当前时间戳(秒);传表 {year,month,day[,hour,min,sec]} 得指定时刻的时间戳。做冷却、每日重置、限时活动的基石。

📥 参数
参数说明
table时间表 {year,month,day,hour,min,sec,[isdst]},省略取当前
📤 返回值

时间戳(秒)

💻 用法案例
print(os.time())   --> 1789951200

-- 指定时间的时间戳
local t = os.time{year=2026, month=10, day=1, hour=0}
print(os.time() < t)   -- 国庆到了吗

-- 明天零点时间戳(每日刷新)
local next0 = os.time{year=os.date('*t').year, month=os.date('*t').month,
                      day=os.date('*t').day + 1, hour=0}
os.tmpname ()
📖 用途

生成一个临时文件名字符串(不创建文件)。配合 io.open 使用;一般用 io.tmpfile 更省心。

📥 参数

无参数

📤 返回值

临时文件名

💻 用法案例
local name = os.tmpname()
print(name)
Lua 接口说明书 · 996引擎教学资料 · chuan2.cn · 共 136 个接口
📝 我的备注-
👤 学员中心 · 备注与学习进度