Lua系统库
Lua为了保证高度的可移植性,因此,它的标准库仅仅提供了非常少的功能,特别是和OS相关的库。但是Lua还提供了一些扩展库,比如Posix库等。对于文件操作而言,该库仅提供了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表示夏令时 |
print(os.time{year = 1970, month = 1, day = 1, hour = 8, min = 0}) --北京是东八区,所以hour等于时表示UTC的0。
print(os.time()) --输出当前时间距离1970-1-1 00:00:00所经过的秒数。输出值为 1333594721
函数date是time的反函数,即可以将time返回的数字值转换为更高级的可读格式,其第一个参数是格式化字符串,表示期望的日期返回格式,第二个参数是日期和时间的数字,缺省为当前日期和时间。如:

1 dd = os.date("*t",os.time()) --如果格式化字符串为"*t",函数将返回table形式的日期对象。如果为"!*t",则表示为UTC时间格式。
2 print("year = " .. dd.year)
3 print("month = " .. dd.month)
4 print("day = " .. dd.day)
5 print("weekday = " .. dd.wday) --一个星期中的第几天,周日是第一天
6 print("yearday = " .. dd.yday) --一年中的第几天,1月1日是第一天
7 print("hour = " .. dd.hour)
8 print("min = " .. dd.min)
9 print("sec = " .. dd.sec)
10
11 --[[
12 year = 2012
13 month = 4
14 day = 5
15 weekday = 5
16 yearday = 96
17 hour = 11
18 min = 13
19 sec = 44
20 --]]

date函数的格式化标识和C运行时库中的strftime函数的标识完全相同,见下表:
| 关键字 | 描述 |
| %a | 一星期中天数的缩写,如Wed |
| %A | 一星期中天数的全称,如Friday |
| %b | 月份的缩写,如Sep |
| %B | 月份的全称,如September |
| %c | 日期和时间 |
| %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-59) |
| %w | 一星期中的第几天(0--6等价于星期日--星期六) |
| %x | 日期,如09/16/2010 |
| %X | 时间,如23:48:20 |
| %y | 两位数的年份(00-99) |
| %Y | 完整的年份(2012) |
| %% | 字符'%' |
print(os.date("%Y-%m-%d")) --输出2012-04-05
函数os.clock()返回CPU时间的描述,通常用于计算一段代码的执行效率。如:

1 local x = os.clock()
2 local s = 0
3 for i = 1, 10000000 do
4 s = s + i
5 end
6 print(string.format("elapsed time: %.2f\n", os.clock() - x))
7
8 --输出结果为:
9 --elapsed time: 0.21

2. 其他系统调用:
函数os.exit()可中止当前程序的执行。函数os.getenv()可获取一个环境变量的值。如:
print(os.getenv("PATH")) --如果环境变量不存在,返回nil。
os.execute函数用于执行和操作系统相关的命令,如:
os.execute("mkdir " .. "hello")
Lua系统库的更多相关文章
- Step By Step(Lua系统库)
Step By Step(Lua系统库) Lua为了保证高度的可移植性,因此,它的标准库仅仅提供了非常少的功能,特别是和OS相关的库.但是Lua还提供了一些扩展库,比如Posix库等.对于文件操作而言 ...
- Lua学习高级篇
Lua学习高级篇 之前已经说了很多,我目前的观点还是那样,在嵌入式脚本中,Lua是最优秀.最高效的,如果您有不同的观点,欢迎指正并讨论,切勿吐槽.这个系列完全来自于<Programming in ...
- Lua操作系统库、流、文件库
Lua操作系统库.流.文件库 1.Lua中所有的操作系统库函数 (1)os.clock() --功能:返回执行该程序cpu花费的时钟秒数 (2)os.time(...) --按参数的内容返回一个时间值 ...
- lua加载动态库缺乏相应的系统库
错误信息: 使用lua测试lm2动态库时,加载时出现如下错误 jfyuan@jfy11-B85M-D2V:~/temp/service/soft/code/ginger_resty/cores/lm2 ...
- lua 中操作系统库
time 和 date 两个函数在lua中实现所有的时钟查询功能. 函数time在没有参数时返回当前时钟的数值.(在许多操作系统中,该数值是距离某个特定时间的秒数). date是time的一种“反函数 ...
- LUA学习笔记三·时间等操作系统库
1.构造时间 2.时间制定格式输出 3.计时器(闭包)os.difftime (t2, t1) 返回以秒计算的时刻 t1 到 t2 的差值. (这里的时刻是由 os.time 返回的值). 在 POS ...
- 【转】Lua 操作系统库
转老帖子备份 转自:http://www.cnblogs.com/whiteyun/archive/2009/08/10/1542913.html os.clock () 功能:返回一个程序使用C ...
- Mac 下纯lua(二)
Lua库 基本函数 assert(v,[,message]) 当v时false时,返回message assert(money >0,"error -1001"); coll ...
- lua的学习
lua是什么 Lua是一中嵌入式的脚本语言. Lua语言可以独立进行编程,但这不是其主要的使用方式.Lua虽然有动态.灵活的语法提供强大的功能,但并不像 Java.Python 等一样有一个完善的库( ...
随机推荐
- 禁用PHP函数,可以对php.ini进行配置
php.ini 里有个 disable_functions 开关选项,此选项可关闭一些危险的函数,比如system,exec 等.比如: disable_functions = phpinfo , 如 ...
- Codeforces 699D Fix a Tree 并查集
原题:http://codeforces.com/contest/699/problem/D 题目中所描述的从属关系,可以看作是一个一个块,可以用并查集来维护这个森林.这些从属关系中会有两种环,第一种 ...
- Inode详解
一.inode是什么 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统读 ...
- nginx和rewrite的配置
测试ok 具体参见 http://www.ccvita.com/348.html
- currentColor-CSS3非常有用的变量
一.currentColor-简介 currentColor顾名思意就是“当前颜色”,准确讲应该是“当前的文字颜色”,例如: .xxx { border: 1px solid currentColor ...
- 64位win7下安装SQL Server 2008(图文解说版)
运行sql安装 单击安装-全新的sql server独立安装,如果我们准备好了故障转移群集,那么我们就可以创建故障转移群集sql 常规检查 一笑而过 选择版本,或者输入密钥自动识别版本 授权协议 支持 ...
- java 数组中插入新的元素
class Demo1 { public static void main(String[] args) { /* 5. 有如下歌曲数组 String[] musics = new String[]{ ...
- 使用VS2010编译64的Geos库
Geos库在cmake中总是报错,所以我决定试试nmake编译64位的库.现将编译过程记录如下: 1.下载Geos,我下的是最新版3.5.0,地址在 http://trac.osgeo.org/geo ...
- 学习android推荐网站
1. Android Developers 作为一个Android开发者,官网的资料当然不可错过,从设计,培训,指南,文档,都不应该错过,在以后的学习过程中慢慢理解体会. 2. Android Gui ...
- [译]SSAS下玩转PowerShell(二)
上一篇中简单的介绍了SSAS下的PowerShell,这一篇会演示更多的操作,比如根据当前时间创建备份,使用变量去指定处理哪一个分区,以及用XMLA脚本去创建分区,和在PowerShell中调用Pow ...