因为之前没弄过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