博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Step By Step(Lua系统库)
阅读量:4114 次
发布时间:2019-05-25

本文共 1892 字,大约阅读时间需要 6 分钟。

  Lua为了保证高度的可移植性,因此,它的标准库仅仅提供了非常少的功能,特别是和OS相关的库。但是Lua还提供了一些扩展库,比如Posix库等。对于文件操作而言,该库仅提供了os.rename函数和os.remove函数。

    
    1. 日期和时间:
    在Lua中,函数timedate提供了所有的日期和时间功能。
    如果不带任何参数调用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 = 201213 month = 414 day = 515 weekday = 516 yearday = 9617 hour = 1118 min = 1319 sec = 4420 --]]

    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 = 03 for i = 1, 10000000 do 4     s = s + i 5 end6 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")

转载地址:http://cmosi.baihongyu.com/

你可能感兴趣的文章
封装GetQueryString()方法来获取URL的value值
查看>>
HTTP请求中的form data和request payload的区别
查看>>
线程池工作队列饱和策略
查看>>
mysql中使用聚合函数结果集为空,仍显示size为1,所有元素为Null问题
查看>>
设计模式心法之单一职责原
查看>>
Spring思想理解
查看>>
web应用中浏览器与服务端的编码和解码
查看>>
Http协议中的CharacterEncoding、Content-Encoding和Transfer-Encoding
查看>>
ftp传输图片损坏原因
查看>>
vue 使用localstorage实现面包屑
查看>>
vue 路由跳转到本页面,ts 监听路由变化
查看>>
[Unity工具]python导表工具03:json转lua
查看>>
[Unity优化]包体积01:查找资源依赖
查看>>
【JavaScript】当我们尝试用JavaScipt测网速
查看>>
【JavaScript】EventEmitter的前端实现
查看>>
【Node.js】 bodyparser实现原理解析
查看>>
【CSS】CSS特效集锦,视觉魔法的碰撞与融合(一)
查看>>
【CSS】Houdini, CSS的成人礼
查看>>
【JavaScript】吃饱了撑的系列之JavaScript模拟多线程并发
查看>>
【github】论怎么去写一个高大上的ReadMe
查看>>