Lua 使用 os.time 获取时间戳需谨慎

1、使用 os.time() 获取当前系统时间戳可以放心大胆的使用,不会出问题!

print("curTimeStamp->", os.time())

2、使用 os.time({timeTbl}) 获取指定日期的时间戳就需要注意了:

指定日期必须是在 1970-01-01 08:00:00 之后才能获取到时间戳,否则返回 nil 。

print(os.time({year = 1970, month = 1, day = 1, hour = 8, min = 0, sec = 0}))
-- 0

print(os.time({year = 2021, month = 6, day = 6}))
-- 1622952000

print(os.time({year = 1970, month = 1, day = 1, hour = 0, min = 0, sec = 0}))
-- nil

print(os.time({year = 1969, month = 1, day = 1}))
-- nil

所以,在获取指定日期的时间戳的时候,除非我们能确保指定日期是在 1970-01-01 08:00:00 之后,否则必须进行判空处理!

不然就容易出问题,例如对 nil 进行运算符操作:

local timeStamp = os.time({year = 1900, month = 8, day = 8})
local diffTimeStamp = os.time() - timeStamp
-- 报错:attempt to perform arithmetic on local 'timeStamp' (a nil value)
参与评论 您还未登录,请先 登录 后发表或查看评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

fightsyj

您的鼓励将是我分享的最大动力!

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值