Step By Step(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 ", 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")
rhel 6.4 + udev + 11.2.0.3 + asm 单点安装
vmware 中linux虚拟机动态添加硬盘
flashback drop
flashback query
11g crsctl start/stop crs 和 crsctl start/stop cluster 的关系
10g crs 启动报错的记录
检测数据库日志的切换频率及归档文件大小的sql
用widthStep的方法来增加某范围的像素----与imageROI对比
用imageROI来增加某范围的像素
- 最新文章
-
Oracle database 11gr2 的典型参数文件
Oracle database 安装在 Linux(rhel,oel,centos)上的用户设置
Oracle 归档日志注册
netezza 数据库几个常用的日期处理函数
Oracle 11.2.0.3 linux x86_64 使用sqlplus 搭建 dataguard
Oracle 11.2.0.4 expdp 含CLOB字段(basicfile)超级慢
linux hugepage + oracle 11.2.0.4
Linux 手动清理文件系统缓存
Oracle VM 升级到 5.0.30 后,打开虚拟机报错。
rhel 5.x 支持 ext4
- 热门文章
-
vnc 在 rhel 6.x 上的配置及使用
rhel 安装图形化界面(gnome,kde)
yum 在 rhel 6.x 下的本地配置
connect by start with 实现tree结构的语法
linux lvm 简介之二 扩充空间
linux lvm 简介之一 创建 vg,lv,fs mount
rhel 5.x 使用 udev scsi rules 配置裸设备
rhel 5.x 使用 /bin/raw 配置裸设备
duplicate 数据库 from backupset [oracle 11.2.0.3 + asm] => [oracle 11.2.0.3 + fs ]
duplicate 数据库 from active database [oracle 11.2.0.3 + asm] => [oracle 11.2.0.3 + asm]