Date,Time

 1.

time和date两个函数在Lua中实现所有的时钟查询功能。函数time在没有参数时返回当前时钟的数值。(在许多系统中该数值是当前距离某个特定时间的秒数。)当为函数调用附加一个特殊的时间表时,该函数就是返回距该表描述的时间的数值。这样的时间表有如下的区间:
year                 a full year
month             01-12
day                  01-31
hour                01-31
min                  00-59
sec                   00-59
isdst                 a boolean, true if daylight saving

前三项是必需的,如果未定义后几项,默认时间为正午(12:00:00)。

 

 2.

函数data,不管它的名字是什么,其实是time函数的一种“反函数”。它将一个表示日期和时间的数值,转换成更高级的表现形式。其第一个参数是一个格式化字符串,描述了要返回的时间形式。第二个参数就是时间的数字表示,默认为当前的时间。使用格式字符 "*t",创建一个时间表。

temp = os.date("*t", 906000490)

for i,val in pairs(temp) do

    print(i,val)

end
则会产生表
{year = 1998, month = 9, day = 16, yday = 259, wday = 4,hour = 23, min = 48, sec = 10, isdst = false}

 

3.

除了使用 "*t" 格式字符串外,如果使用带标记(见下表)的特殊字符串,os.data函数会将相应的标记位以时间信息进行填充,得到一个包含时间的字符串。

%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         day of the month (16) [01-31]
%H        hour, using a 24-hour clock (23) [00-23]
%I          hour, using a 12-hour clock (11) [01-12]
%M        minute (48) [00-59]
%m        month (09) [01-12]
%p         either "am" or "pm" (pm)
%S         second (10) [00-61]
%w        weekday (3) [0-6 = Sunday-Saturday]
%x         date (e.g., 09/16/98)
%X         time (e.g., 23:48:10)
%Y         full year (1998)
%y          two-digit year (98) [00-99]
%%         the character '%'

 例如:

print(os.date("today is %A, in %B"))
--> today is Tuesday, in May
print(os.date("%x", 906000490))
--> 09/16/1998

事实上如果不使用任何参数就调用date,就是以%c的形式输出。这样就是得到经过格式化的完整时间信息。还要注意%x、%X和%c由所在地区和计算机系统的改变会发生变化。如果该字符串要确定下来(例如确定为mm/dd/yyyy),可以使用明确的字符串格式方式(例如"%m/%d/%Y")。


函数os.clock返回执行该程序CPU花去的时钟秒数。该函数常用来测试一段代码。
local x = os.clock()
local s = 0
for i=1,1000000 do s = s + i end
print(string.format("elapsed time: %.2f\n", os.clock() - x))

------>>>>elapsed time:0.01

4.

函数os.exit终止一个程序的执行。函数os.getenv得到“环境变量”的值。

print(os.getenv("HOME")) --> /home/lua
如果没有该环境变量则返回nil。

 

函数os.execute执行一个系统命令(和C中的system函数等价)。该函数获取一个命令字符串,返回一个错误代码。

例如在Unix和DOS-Windows系统里都可以执行如下代码创建一个新目录:
function createDir (dirname)
os.execute("mkdir " .. dirname)
end
os.execute函数较为强大,同时也更加倚赖于计算机系统。

 

函数os.setlocale设定Lua程序所使用的区域(locale)。

setlocale有两个字符串参数:区域名和特性(category,用来表示区域的各项特性)。在区域中包含六项特性:“collate”(排序)控制字符的排列顺序;"ctype" controls the types of individual characters (e.g., what is a letter) and the conversion between lower and upper cases; "monetary"(货币)对Lua程序没有影响;"numeric"(数字)控制数字的格式;"time"控制时间的格式(也就是os.date函数);和“all”包含以上所以特性。函数默认的特性就是“all”,所以如果你只包含地域名就调用函数setlocale那么所有的特性都会被改变为新的区域特性。如果运行成功函数返回地域名,否则返回nil(通常因为系统不支持给定的区域)。
print(os.setlocale("ISO-8859-1", "collate")) --> ISO-8859-1

转载于:https://my.oschina.net/u/2297609/blog/370270

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值