lua时间函数

转载 2015年11月19日 12:44:31

一、时间的三种格式

1、用数值表示时间值 

用数字值来表示时间值,
实际上时间值的本质就是一个数字值。

例如:

d = 1131286477 

这里的 1131286477 是一个以秒为单位的 格林威志时间(gmt),注意不同时区的时差

2、用字符串表示时间 

用字符串来来表示时间。

例如:

d = "2005-11-06 22:18:30" --2005年11月6日 22点18分30秒
d = "11/06/2005 22:18:30" --即2005年11月6日 22点18分30秒

3、时间的列表格式 

用table对象来表示时间

例如:

d = {year=2005, month=11, day=6, hour=22,min=18,sec=30,isdst=false}
--同样表示2005年11月6日 22点18分30秒,其中isdst=false表示不使用夏令时

我们可以这样访问时间列表 d.year = 2005;

二、取得数值(number)格式的时间值

time = os.time() 

返回一个标准的number(数值)格式的时间值,这也是最原始的时间值
os.time()返回的时间是以秒为单位的。

1、获取当前时间数值

time = os.time(); 
--如果没有指定任何参数,则返回当前时间

2、通过table参数指定时间,获取指定的时间数值

time = os.time(tab);

通过一个table参数,指定一个时间,返回时间的数值格式.

例如:

local tab = {year=2005, month=11, day=6, hour=22,min=18,sec=30,isdst=false}
--year表示年,month表示月,day表示日期,hour表示小时,min表示分钟,sec表示秒,isdst表示是否夏令时 

time = os.time(tab) -->返回值为1131286710

三、取得列表(table)格式的时间

tab = os.date("*t",time) 

可以将一个数值格式的时间转换为字符串或者列表
其中第一个参数指定返回的格式,如果第一个参数指定为"*t" 则返回一个table格式的时间。
第二个参数指定一个时间数值(以秒为单位)

1、获取当前时间的table格式

tab = os.date("*t")

如果不指定os.date的第二个参数,则返回当前时间的table表示格式

2、通过时间数值,获取指定时间的table格式

tab = os.date("*t", time)

通过os.date函数的第二个参数指定一个时间数值。

例如:

local tab = os.date("*t", 1131286710);

--返回值 tab 的数据 {year=2005, month=11, day=6, hour=22,min=18,sec=30}
--year表示年,month表示月,day表示日期,hour表示小时,min表示分钟,sec表示秒,isdst表示是否夏令时 
--tab成包括一些其他的成员 tab.yday 表示一年中的第几天 tab.wday 表示星期几(星期天为1)


time = os.time(tab) -->返回值为1131286710

四、取得时间的字符串(string)格式

tab = os.date(format,time)

实际上与取得table格式的时间一样,同样是使用os.date参数,不同的是第一个参数
如果第一个参数不是"*t" os.date返回字符串

关于format参数使用的格式化语法,请参考:string.ftime格式化语法
os.date 的用法与 string.ftime 完全相同

例如:

win.consoleOpen()

print(  os.date("today is %A, in %B")  )
print(  os.date("%x", 906000490)  )

--输出类似这样的字符串 09/16/1998

1、获取当前时间的字符串(string)格式

如果不指定os.date的第二个参数,则返回当前时间的table表示格式

例如:

str= os.date("*x")

2、通过时间数值,获取指定时间的(string)格式

通过os.date函数的第二个参数指定一个时间数值。

例如:

str= os.date("*x",1131286710)

3、获取时间的指定部份的(string)格式

例如:

str = os.date("%M") --返回当前时间分钟部份的字符串格式

五、时间数值与字符串之间的转换

请参考:string.time string.ftime 函数用法

六、计算时间值间隔

int = os.difftime(t2,t1);

t2,t1都是数值格式的时间值,返回值也是一个数值表示间隔的时间。
参数以及返回的时间值都是以秒为单位的数值格式。

local tab = {year=2005, month=11, day=6, hour=22,min=18,sec=30,isdst=false}
t1 = os.time(tab)

tab.day = tab.day +1;--前进一天
t2 = os.time(tab)

int = os.difftime(t2,t1);
win.messageBox(int.."秒","时间差"

七、系统时钟

int = os.tick();
读取系统时钟,以毫秒为单位。表示从系统启动到当前时刻所过去的毫秒数。

int = os.clock()
读取系统时钟,以秒为单位。表示从系统启动到当前时刻所过去的秒数。

 注意 

因为内部实现的差异,os.tick 与 os.clock()的返回值并不完全一致。

lua时间函数操作和对比代码,os.date() os.time()

lua中时间函数的操作,以及时间对比

【Lua游戏开发】os库-时间函数 转

一、时间的三种格式 1、用数值表示时间值  用数字值来表示时间值, 实际上时间值的本质就是一个数字值。 例如: d = 1131286477  这里的 11312864...

lua时间函数操作和对比代码,os.date() os.time()

lua时间函数操作和对比代码,os.date() os.time() 2015-04-27 20:33 1163人阅读 评论(0) 收藏 举报  分类: Lua(1)  ...
  • w111y24
  • w111y24
  • 2016年08月18日 22:30
  • 1103

【Lua游戏开发】os库-时间函数

一、时间的三种格式 1、用数值表示时间值  用数字值来表示时间值, 实际上时间值的本质就是一个数字值。 例如: d = 1131286477  这里的 11312864...

【Lua游戏开发】os库-时间函数

一、时间的三种格式 1、用数值表示时间值  用数字值来表示时间值, 实际上时间值的本质就是一个数字值。 例如: d = 1131286477  这里的 11312864...
  • ybhjx
  • ybhjx
  • 2017年01月17日 09:54
  • 776

c++ 调用lua函数简单案例

  • 2017年03月11日 22:36
  • 1.2MB
  • 下载

ngx lua获取时间戳的几种方式

在ngx_lua里,获取时间相关信息的方式大概有4种(见下面代码):print(string.format("%s, %s, %s, %s", ngx.time(), os.time(), os.cl...

C++ 中调用 Lua 函数

  • 2015年11月03日 01:25
  • 5.21MB
  • 下载

LUA_函数库

  • 2012年02月27日 20:55
  • 315KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lua时间函数
举报原因:
原因补充:

(最多只允许输入30个字)