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 等一样有一个完善的库( ...
随机推荐
- 守护进程demon.c
1 #include <stdio.h> #include <unistd.h> #include <errno.h> #include <time.h> ...
- nginx:413 Request Entity Too Large 及 修改 PHP上传文件大小配置
开发环境:CentOS + Nginx + PHP + MySql + phpMyAdmin 在用 phpMyAdmin 进行 sql 数据库导入的时候,经常需要上传比较大的 sql 数据文件,而这时 ...
- HTTP的报文与状态码
本文是<HTTP权威指南>的读书笔记 HTTP报文是简单的格式化数据块.每条报文都包含一条来自客户端的请求或一条来自服务器的响应.它们由三部分组成: 对报文进行描述的起始行(start l ...
- vuejs
简介 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易 ...
- 加速android源码编译
添加缓存环境变量 : 在 ~/.bashrc 环境变量文件中 添加 export USE_CCACHE=1环境变量, 加速随后的编译过程; 分配缓存磁盘大小 为 ccache 指定磁盘中的一部分大小, ...
- Ubuntu设置环境变量 16.04
打开终端并输入: sudo gedit /etc/environment. 2 输入用户密码.这时输入的密码是不可见的. 3 如图,在PATH="...."的末尾处添加: :/op ...
- 简述Linux命令初使用
.cd 命令 cd 命令经常使用来改变目录 root@test:~# cd /home/user/Desktop root@test:~# cd .. 返回上一级目录 root@test:~# cd ...
- k-means聚类算法python实现
K-means聚类算法 算法优缺点: 优点:容易实现缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢使用数据类型:数值型数据 算法思想 k-means算法实际上就是通过计算不同样本间的距离来判断他 ...
- 修改vim的主题风格
参考网站:https://github.com/yangyangwithgnu/use_vim_as_ide#0.1 molokai源码:https://github.com/tomasr/molok ...
- ADO.NET 读取Excel文件,并作数据源
项目中需要用的功能,贴上代码了. 需要注意的地方:配置Web.config的时候要注意版本问题! //若是在Web.config中配置数据源,如下 <add key="ExcelCon ...