版权声明:本文为博主原创文章,未经博主允许不得转载。
Lua标准库中提供了关于时间函数 os.time()和os.date(),这两个函数需要注意的地方就是加入了时区的概念
os.time() 得到是当前时间的距离1970.1.1.08:00时间的秒数,如果传入的参数小于这个时间,那么就会得到一个,秒数就是负数,会得到一个空值
os.time()
1. 不传参的话返回当前时间转化成秒数的结果
local time2 = os.time()
2. 传参返回指定时间转化秒数的结果
local time = os.time({year =2016, month = 11, day =23, hour =17, min =17, sec = 00})
print(“====================time=,”,time) -- 结果打印 1479892620
tips:任何一个时区,在相同的时间,同时调用os.time() 返回的结果都是一样的
os.date() 把时间戳转化成可显示的时间字符串
1. dump(os.date(“*t”,0),“--->”) -- 格式化成表的形式显示
result:
"--->" = {
"day" = 1 --日
"hour" = 8 --小时
"isdst" =false --是否夏令时
"min" = 0 --分钟
"month" = 1 --月
"sec" = 0 --秒
"wday" = 5 --星期5
"yday" = 1 --当年已过天数
"year" = 1970 --年
}
2.print("===============os.date()==",os.date("%Y-%m-%d%H:%M:%S",1479892620))
Result:
===============os.date()== 2016-11-23﹎17:17:00
tips:如果服务器返回一个时间戳,客户端想要转换成可读样式,需要考虑到时区问题,因为是按照本地时区转换的,如果本地时区跟服务器所在时区不一致,就会导致时间显示错误,一般解决办法就是 加上时区差即可。ps:如果有夏令时,则需要加上3600s
但是怎么获取时区呢?
在开发过程中遇到时间转换问题,主要是以此记录