实时获取时间的具体操作问题

我想问下,开启网络服务器同步时间的功能,是每隔多久进行一次时间同步?并且我应该调用那个API函数来获取当前的时间呢?

请先 登录 后评论

1 个回答

技术销售Delectate
擅长:IT

通常建议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") 啦。

请先 登录 后评论
  • 0 关注
  • 0 收藏,2808 浏览
  • 景景1993 提出于 2018-08-31 16:01

相似问题