note 目录
操作系统库包含了文件管理,系统时钟等等与操作系统相关信息。这些函数定义在表(table)os中
功能:函数os.clock返回执行该程序CPU花去的时钟秒数
local x = os.clock();
print(os.clock())
local s = 0;
for i = 1, 100000000 do
s = s + i;
end
print(string.format("elapsed time : %.2f\n", os.clock() - x));
output:
0
elapsed time : 2.55
(1)如果不带任何参数调用time函数,它会以数字形式返回当前的日期和时间(这个数字表示从某一刻至今的秒数)。
print("os.time: " .. os.time())
output:
os.time: 1476668264
(2)如果用一个table作为参数调用它,表示该table中所描述的日期和时间。
这种table具有以下字段:
字段 | 意义 |
---|---|
year | 一个完整的年份 |
month | 01-12 |
day | 01-31 |
hour | 00-23 |
min | 00-59 |
sec | 00-59 |
isdst | 一个布尔值,true表示夏令时间 |
前3个字段是必须有的其他字段默认为中午(12:00:00)
print(os.time{year=1970,month=1,day=1,hour=0}) output:10800
print(os.time{year=1970,month=1,day=1,hour=0,sec=1}) output:10801
print(os.time{year=1970,month=1,day=1}) output:54000
功能:
date是time的一个反函数,它可以将一个表示日期和时间的数字转换成某些高级的表现形式,返回一个按format格式化日期、时间的字串或表。
第一个参数是格式字符串,指定了期望的表现形式
第二个参数是日期和时间的数字,默认为当前日期和时间
os.date("formatStr" , "nowTime")
(1) formatStr = *t
将返一个带year(4位),month(01-12), day (01–31), hour (00-23), min (00-59), sec (00-61), wday (星期几, 星期天为1), yday (年内天数), and isdst (是否为日光节约时间true/false)的带键名的表
local t = os.date("*t",os.time())
for i, v in pairs(t) do
print(i, v);
end
输出:
sec 18
min 22
day 17
isdst false
wday 2
yday 291
year 2016
month 10
hour 10
(2)format = %x%x 其他格式字符串
对于其它的格式字符串,os.date会将日期格式化为一个字符串
print(os.date("today is %A, in %B")) output: today is Tuesday, in May
print(os.date("%x", 906000490)) output: 09/16/1998
格式化字符串表
字符串 | 意义 | 返回结果 |
---|---|---|
%a | 一星期中天数的简写 | (Wed) |
%A | 一星期中天数的全称 | (Wednesday) |
%b | 月份的简称 | (sep) |
%B | 月份的全称 | (september) |
%c | 日期和时间 | (09/16/98 23:48:10) |
%d | 一个月中的第几天 | (17)[00-31] |
%H | 24小时制中的小时数 | (23)[00 ~ 23] |
%I | 12小时制中的小时数 | (11)[01 ~ 12] |
%j | 一年中的第几天 | (259)[01 ~ 366] |
%M | 分钟数 | (48)[00 ~ 59] |
%m | 月份数 | (09)[01 ~ 12] |
%P | “上午(am)” 或 “下午(pm)” | (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) |
%% | 字符串’% | “” |
输入想要转换的时间,不填这个参数,默认为当前时间。
功能:返回t1到t2相差的秒数
t1 = os.time();
for i = 0, 10000000 do
os.time();
end
t2 = os.time();
print(os.difftime(t2, t1));
output:
2
功能:相当于C的system函数,返回系统状态码
os.execute("pause")
output:
按任意键继续. . .
功能:相当于C的exit函数,终止主程序,code为返回值
os.exit(1)
功能:返回当前进程的环境变量varname的值,若变量没有定义时返回nil
print(os.getenv("USERDOMAIN"))
print(os.getenv("SystemRoot"))
print(os.getenv("Os2LibPath"))
print(os.getenv("ProgramFiles" ))
print(os.getenv("APPDATA" ))
print(os.getenv("ALLUSERSPROFILE" ))
print(os.getenv("CommonProgramFiles" ))
print(os.getenv("COMPUTERNAME" ))
print(os.getenv("USERNAME"))
print(os.getenv("USERPROFILE" ))
print(os.getenv("ComSpec"))
print(os.getenv("LOGONSERVER" ))
print(os.getenv("NUMBER_OF_PROCESSORS" ))
print(os.getenv("OS"))
print(os.getenv("PATHEXT" ))
print(os.getenv("PROCESSOR_ARCHITECTURE" ))
print(os.getenv("PROCESSOR_IDENTIFIER" ))
print(os.getenv("PROCESSOR_LEVEL" ))
print(os.getenv("PROCESSOR_REVISION" ))
print(os.getenv("USERDOMAIN"))
print(os.getenv("SystemRoot" ))
print(os.getenv("TEMP"))
output:
RDEV
C:\WINDOWS
nil
C:\Program Files
C:\Documents and Settings\baiyun\Application Data
C:\Documents and Settings\All Users
C:\Program Files\Common Files
BAIYUN
baiyun
C:\Documents and Settings\baiyun
C:\WINDOWS\system32\cmd.exe
Windows_NT
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.py;.pyw;.wlua
x86
x86 Family 15 Model 6 Stepping 5, GenuineIntel
15
0605
RDEV
C:\WINDOWS
C:\DOCUME~1\baiyun\LOCALS~1\Temp
功能:删除文件或一个空目录,若函数调用失败则返加nil加错误信息
功能:更改一个文件或目录名,若函数调用失败则返加nil加错误信息
功能:设置程序的当前设置,函数返回最新的值,失败则返回nil
参数:
locale:一个指定当前设置的字串
“”:一个空字串,当前设置被视为本地设置
“c”:当前设置被视为标准c设置
nil:返回category指示设置名的当前值
category:一个描述要更改的设置名
“all”[默认], “collate”, “ctype”, “monetary”, “numeric”, “time”
功能:返回一个临时文件名