介紹lua的日期函式常用方法及我的乙個踩坑。
時間戳轉日期
os.date("%y%m%d%h",unixtime)
--os.date("%y%m%d%h",1534435200) 2018081700
日期轉時間戳
---指定日期的時間戳
os.time()
--1534435200
當前時間戳
os.time()
格式佔位符
--時間格式 yyyymmddhhmmss
print(os.date("%y%m%d%h%m%s", os.time()))
轉成年月日介面
function tool.formatunixtime2date(unixtime)
if unixtime and unixtime >= 0 then
local tb = {}
tb.year = tonumber(os.date("%y",unixtime))
tb.month =tonumber(os.date("%m",unixtime))
tb.day = tonumber(os.date("%d",unixtime))
tb.hour = tonumber(os.date("%h",unixtime))
tb.minute = tonumber(os.date("%m",unixtime))
tb.second = tonumber(os.date("%s",unixtime))
return tb
endend
當然,如果你只需要拿天數進行比較,可以使用tonumber(os.date("%d",unixtime))
踩坑日誌
不建議採用以下方式計算日期
function tool.formatdiffunixtime2tb(diffunixtime)
if diffunixtime and diffunixtime >= 0 then
local tb = {}
---一天的秒數86400
tb.dd = math.floor(diffunixtime / 60 / 60 / 24)
tb.hh = math.floor(diffunixtime / 3600) % 24
tb.mm = math.floor(diffunixtime / 60) % 60
tb.ss = math.floor(diffunixtime % 60)
return tb
endend
比如這兩個零點日期,通過上述介面計算的dd是非常接近的!
日期unix timestamp
計算值2018/8/16 23:59:59
17759.66665509259
2018/8/17 00:00:01
17759.66667824074
轉換計算工具
參考資料
lua 差值 日期 Lua日期與時間操作
os.time 返回當前系統的日曆時間 os.date 返回本地化的時間字串,這裡是 11 28 08 17 23 37 os.date x os.time 返回自定義格式化時間字串 完整的格式化引數 這裡是 11 28 08 os.clock 返回執行該程式cpu花去的時鐘秒數,這裡是1156.7...
lua 差值 日期 在lua中優雅的操作日期和時間
曾幾何時,在lua裡面對時間進行操作總是充滿了辛酸和不堪,最終下定決心使用乙個優雅的方式實現對日期的處理,在大多數情況下對日期時間的處理主要是 根據已知時間和偏移量以及時間單位計算出乙個新的時間 設計思路 1.借助於lua提供的os.date和os.time實現 2.用os.date把給定的時間從字...
Lua時間戳和日期轉換
os.date y m d h unixtime os.date y m d h 1534435200 2018081700 指定日期的時間戳 os.time 1534435200os.time 時間格式 yyyymmddhhmmss print os.date y m d h m s os.tim...