函数有两种调用方式
local t = os.time() 得到当前系统的时间戳(UTC +0)
local t = os.time({year = 2020,month = 2,day = 11,hour = 11,min = 24,sec =0 }) 得到2020-2-11 11:24:00 的时间戳(UTC+0),这里需要注意的是如果以table 方式传入当前的日历时间(年月日时分秒),函数会假定你传入的时间是本地时间(带时区),会在转化的时候减去系统的时区来进行转换!
源码如下
从上面的源码可以看出 不传入参数的时候使用的是C函数 time(NULL) 返回,带参数的时候通过mktime 来转化返回,mktime 就是带了时区转化!
lua的官方描述
这里支持了很多种格式化的方式来输出
这里主要记录两种方式的使用
local t = os.date("*t",time) 和 local t = os.date("!*t",time)
即是否带 "!" 的转化方式:如果没有带 "!" 则代表转化的时候需要进行时区的转换;带了则不需要进行时区的转换
源码如下
带了 "!" 的时候则 调用的是C函数 gmtime 简单的把time 时间戳转化成 日历时间,不带的时候就先调用了localtime 来进行转换,这里就把时区带进来进行转换的!
function isToday(timestamp)local today = os.date("*t")
local secondOfToday = os.time({day=today.day, month=today.month,
year=today.year, hour=0, minute=0, second=0})
if timestamp >= secondOfToday and timestamp <secondOfToday + 24 * 60 * 60 then
return true
else
return false
end
end
print(isToday(os.time({day=17, month=5, year=2012, hour=0, minute=0, second=0})))
print(isToday(os.time({day=17, month=5, year=2012, hour=16, minute=28, second=38})))
print(isToday(os.time({day=17, month=5, year=2012, hour=23, minute=59, second=59})))
print(isToday(os.time({day=16, month=5, year=2012, hour=23, minute=59, second=59})))
print(isToday(os.time({day=18, month=5, year=2012, hour=0, minute=0, second=0})))
lua语言里面dwtime不是当前时间,当前时间是os.time。from = os.time() --当前时间,单位秒
to = os.time({year=2012,month=1,day=1,hour=1,min=30}) --指定时间,单位秒
sub = to-from --差。
Lua是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有 *** 作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)