关于Lua的os.date转换和游戏海外版本时区问题

因为之前没弄过lua语言,后面换了工作,游戏使用lua热更,所以逻辑都是用lua写,在做功能的时候需要获得服务器下一个点的时间搓,例如下一个0点时间搓或者下一个12点的时间搓之类的,这个时候就需要用到os.date来转换时间,os.date("!*t", serverTime),加了!这个符号,代表把serverTime时间变成格林威治时间,也就是utc0的时间,这里我一开始以为是把serverTime这个时间搓的时间减去本地时区,例如如果是中国东八区,就把serverTime减去8*3600秒,实际上并不是这样,这个!的作用其实是代表从1970年1月1号0点到serverTime这个时间搓的时间,表示这个时间搓在utc0代表的日期。这样理解,os.date("!*t", serverTime),就是代表serverTime这个时间搓在utc0时候的日期,这个不管你本地时区是什么,都是一致的。

先上下代码:

function GetServerTime()

local serv

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值