通常建议24h同步一次;因为晶振会温漂,所以导致计时不准。定时同步有助于保持时钟准确性。
-- 重要提醒!!!!!! -- ntp功能模块采用多个免费公共的NTP服务器来同步时间 -- 并不能保证任何时间任何地点都能百分百同步到正确的时间 -- 所以,如果用户项目中的业务逻辑严格依赖于时间同步功能 -- 则不要使用使用本功能模块,建议使用自己的应用服务器来同步时间 require"ntp" require"misc" local function prinTime() local tm = misc.getClock() log.info("testNtp.printTime", string.format("%04d/%02d/%02d,%02d:%02d:%02d", tm.year, tm.month, tm.day, tm.hour, tm.min, tm.sec)) end sys.timerLoopStart(prinTime,1000) ntp.timeSync()
其中:
-- @usage ntp.timeSync() -- 只同步1次
-- @usage ntp.timeSync(1) -- 1小时同步1次
-- @usage ntp.timeSync(nil,fnc) -- 只同步1次,同步成功后执行fnc()
-- @usage ntp.timeSync(24,fnc) -- 24小时同步1次,同步成功后执行fnc()
开发者可以通过 os.time() 获取时间戳,或者 os.date("*t") 获得table。
PS:misc.getClock() 实际上就是 os.date("*t") 啦。