lua 时间函数os.time()和os.date()

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

 

但是怎么获取时区呢?


在开发过程中遇到时间转换问题,主要是以此记录

  • 9
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值