os.clock()
返回当前当前cpu使用的秒数
例子
--用来计算中间的遍历花费了多少cpu时间
local x = os.clock()
local s = 0
for i = 1, 10000000 do s = s + i end
print(string.format("elapsed time: %.2f\n", os.clock() - x))
os.date([format [, time]])
用来格式化时间戳为可读时间,time为可选时间戳,省略时取当下
os.time ([table])
默认获取当前时间戳,也可以指定table参数
例子
--2018-05-09 09:20:04
local now = os.date("%Y-%m-%d %H:%M:%S")
-- %a abbreviated weekday name (e.g., Wed)
-- %A full weekday name (e.g., Wednesday)
-- %b abbreviated month name (e.g., Sep)
-- %B full month name (e.g., September)
-- %c date and time (e.g., 09/16/98 23:48:10)
-- %d 一个月里的几号[01–31]
-- %H 24小时[00–23]
-- %I 12小时[01–12]
-- %j 一年中的第几天[001–366]
-- %M 分[00–59]
-- %m 月份[01–12]
-- %p am(上午),pm(下午)
-- %S 秒[00–60]
-- %w 星期几[0–6 = 星期天–星期六]
-- %x date (e.g., 09/16/98)
-- %X time (e.g., 23:48:10)
-- %y two-digit year (98) [00–99]
-- %Y 年(1998)
-- %% the character ‘%’
--获取当前时间戳秒-1525829060
local secs = os.time()
local year = string.sub(now,1,4)
local month = string.sub(now,6,7)
local day = string.sub(now,9,10)
local hour = string.sub(now,12,13)
local minute = string.sub(now,15,16)
local second = string.sub(now,18,19)
--获取7天前的时间
ta = {
year=year,
month=month,
day=day-7,
hour=hour,
min=minute,
sec=second
}
--2018-05-02 09:50:57
local t = os.date("%Y-%m-%d %H:%M:%S", os.time(ta))
--获取本年2月份的天数
--3月份开头减去1天就是2月份的最后一天
ta = {
year=year,
month=3,
day=0,
}
--28
local days = os.date("%d", os.time(ta))
--我相信想计算其他复杂的时间格式,都可以通过上面的例子来举一反三了
os.exit(0)
结束程序并返回状态码,0代表成功
os.getenv(varname)
获取坏境变量
--/root
os.getenv("HOME")
os.execute(cmd)
执行操作系统命令并返回状态码,0代表成功,此函数等同于c语言中的system函数
--0
local stat = os.execute('ls -al')
os.setlocale (locale [, category])
主要是设置地区信息(地域信息)。 地区信息是针对一个地理区域的语言、货币、时间以及其他信息,主要是为了满足不同地区的人们的不同阅读习惯。
返回值:
locale名称,返回nil代表失败(一般是由于当前系统不支持指定的locale名)
参数:
第一个参数为locale名,第二个为类目(用来指定应用到哪里默认为全部)
locale:
''空字符 locale将会设置成由当前执行坏境决定的locale
nil 只是返回当前locale
C 设置成标准C locale
category
"collate" 控制字符串的字母排序
"ctype" 控制单个字符类型以及大小写约定
"monetary" 此选项对lua不起作用
"numeric" 控制数字的格式化方式
"time" 控制date,time的格式化如os.date
"all" 包含以上全部
shell例子
#shell查看当前系统支持哪些locale
locale -a
#部分输出如下
:<<!
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
!
#查看当前bash的locale
locale
#输出如下
:<<!
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
!
lua例子
--获取当前地区信息
--C
local res = os.setlocale(nil)
--Wed May 9 10:42:04 2018
res = os.date('%c')
--zh_CN.utf8
os.setlocale("zh_CN.utf8","time")
--2018年05月09日 星期三 10时54分32秒
res = os.date('%c')
--不同坏境结果可能会略微不同
os.remove(filename)
删除文件或空目录,失败返回nil以及描述信息
os.rename(oldname,newname)
重命名文件或目录,失败返回nil以及描述信息
os.tmpname()
自动产生临时文件并返回文件名如/tmp/lua_zH52pu,如果要使用,必须手动打开文件,最后不使用时必须手动删除。
io.tmpfile()产生的临时文件程序结束后会自动删除
总结
1.本文只是对os库做简单的介绍,如果有疑问可以给我留言
2.lua的版本为5.1,运行环境centos7 64位
3.原文地址http://www.freecls.com/a/2712/12