Lua為了保證高度的可移植性,因此,它的標(biāo)準(zhǔn)庫僅僅提供了非常少的功能,特別是和OS相關(guān)的庫。但是Lua還提供了一些擴(kuò)展庫,比如Posix庫等。對于文件操作而言,該庫僅提供了os.rename函數(shù)和os.remove函數(shù)。
1. 日期和時(shí)間:
在Lua中,函數(shù)time和date提供了所有的日期和時(shí)間功能。
如果不帶任何參數(shù)調(diào)用time函數(shù),它將以數(shù)字形式返回當(dāng)前的日期和時(shí)間。如果以一個(gè)table作為參數(shù),它將返回一個(gè)數(shù)字,表示該table中所描述的日期和時(shí)間。該table的有效字段如下:
print(os.time{year = 1970, month = 1, day = 1, hour = 8, min = 0}) --北京是東八區(qū),所以hour等于時(shí)表示UTC的0。
print(os.time()) --輸出當(dāng)前時(shí)間距離1970-1-1 00:00:00所經(jīng)過的秒數(shù)。輸出值為 1333594721
函數(shù)date是time的反函數(shù),即可以將time返回的數(shù)字值轉(zhuǎn)換為更高級的可讀格式,其第一個(gè)參數(shù)是格式化字符串,表示期望的日期返回格式,第二個(gè)參數(shù)是日期和時(shí)間的數(shù)字,缺省為當(dāng)前日期和時(shí)間。如:
復(fù)制代碼 代碼如下:
dd = os.date("*t",os.time()) --如果格式化字符串為"*t",函數(shù)將返回table形式的日期對象。如果為"!*t",則表示為UTC時(shí)間格式。
print("year = " .. dd.year)
print("month = " .. dd.month)
print("day = " .. dd.day)
print("weekday = " .. dd.wday) --一個(gè)星期中的第幾天,周日是第一天
print("yearday = " .. dd.yday) --一年中的第幾天,1月1日是第一天
print("hour = " .. dd.hour)
print("min = " .. dd.min)
print("sec = " .. dd.sec)
--[[
year = 2012
month = 4
day = 5
weekday = 5
yearday = 96
hour = 11
min = 13
sec = 44
--]]
date函數(shù)的格式化標(biāo)識(shí)和C運(yùn)行時(shí)庫中的strftime函數(shù)的標(biāo)識(shí)完全相同,見下表:
復(fù)制代碼 代碼如下:
print(os.date("%Y-%m-%d")) --輸出2012-04-05
函數(shù)os.clock()返回CPU時(shí)間的描述,通常用于計(jì)算一段代碼的執(zhí)行效率。如:
復(fù)制代碼 代碼如下:
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))
--輸出結(jié)果為:
--elapsed time: 0.21
2. 其他系統(tǒng)調(diào)用:
函數(shù)os.exit()可中止當(dāng)前程序的執(zhí)行。函數(shù)os.getenv()可獲取一個(gè)環(huán)境變量的值。如:
復(fù)制代碼 代碼如下:
print(os.getenv("PATH")) --如果環(huán)境變量不存在,返回nil。
os.execute函數(shù)用于執(zhí)行和操作系統(tǒng)相關(guān)的命令,如:
os.execute("mkdir " .. "hello")
您可能感興趣的文章:- Lua中os庫詳細(xì)介紹
- Lua中的一些常用函數(shù)庫實(shí)例講解
- Lua中的常用函數(shù)庫匯總
- Lua中的數(shù)學(xué)庫總結(jié)
- 簡介Lua腳本與Redis數(shù)據(jù)庫的結(jié)合使用
- Nginx+lua 實(shí)現(xiàn)調(diào)用.so文件