操作系统定义在table os 中,其中包含了文件操作函数、获取当前日期和时间的函数,以及一些其他与操作系统相关的功能。对于文件操作而言,这个库只提供了两个函数,一个用于文件改名的os.rename函数,另一个是用于删除文件的os.remove函数。
1.时间和日期
在lua中,函数time和date提供了所有的日期和时间的功能。
如果不带任何参数调用time函数,它会以数字形式返回当前的日期和时间。如果用一个table作为参数调用它,它会返回一个数字,表示该table中所描述的日期和时间,这种table具有以下有效字段:
year | 一个完整的年份 |
month | 01-12 |
day | 01-31 |
hour | 00-23 |
min | 00-59 |
sec | 00-59 |
isdst | 一个布尔值,true表示夏令时 |
date是time的一个反函数,它可以将一个表示日期和时间的数字转换成某些高级的表现形式。其第一个参数是格式字符串,指定了表现形式,第二个参数是日期和时间的数字,默认为当前的日期和时间。
date会将日期格式化为一个字符串,这个字符串是传入格式字符串的一个复制,但其中的某些特殊标记被替换成了时间和日期信息,所有的标记都以%开头,并伴随一个字母,例如:
print(os.date("today is %A,in%B")) -->today is Tuesday,in May
print(os.date("%x",906000490)) -->09/16/1998
%a | 一星期中天数的简写(Wed) |
%A | 一星期中天数的全写 |
%b | 月份的简写(Sep) |
%B | 月份的全称 |
%c | 日期和时间 |
%d | 一月中的第几天 |
%H | 24小时制中的小时数 |
%I | 12小时制中的小时数 |
%j | 一年中的第几天 |
%M | 分钟数 |
%m | 月份数 |
%p | 上午(am)或下午(pm) |
%S | 秒数 |
%w | 一星期中的第几天 |
%x | 日期(09/16/98) |
%X | 时间(23:48:10) |
%y | 两位数的年份 |
%Y | 完整的年份 |
%% | 字符% |
函数os.clock会返回当前CPU时间的秒数,一般用于计算一段代码的执行时间。
2.其他系统调用
函数os.exit可终止当前程序的执行。函数os.getenv可获取一个环境变量的值,并接受一个变量名,返回对应的字符串的值:
print(os.getenv("HOME")) -->/home/lua
如果一个环境变量没有定义,它会返回一个nil。
函数os.execute可运行一条系统命令,它等价于C语言中的system函数。它需要接受一个字符串,并返回一个错误代码。
函数os.setlocale设置当前Lua程序所使用的的区域。区域定义了不同文化或不同语言之间的差异之处。