lua中關於時間的總結
在專案的開發過程中,難免會對時間進行處理,下面對關於時間的知識進行總結一下:
1.lua中自帶的os庫
os.time ([table]) 函式按table的內容返回一個時間值(數字),若不帶引數則返回當前時間table的欄位
print(os.time()); --得到當前的時間
-->1249887340
print(os.time({year=1970, month=1, day=1, hour=0}));
-->10500
os.date ([format [, time]])
功能:返回一個按format格式化日期、時間的字串或表
若設定time引數,則按time指定的時間格式化,否則按當前時間格式化
引數format::
“!”:按格林尼治時間進行格式化。
“*t”:將返一個帶year(4位),month(1-12), day (1–31), hour (0-23), min (0-59), sec (0-61), wday (星期幾, 星期天為1), yday (年內天數), and isdst (是否為日光節約時間true/false)的帶鍵名的表; 若沒有”*t”則返回一個按C的strftime函式格式化的字串
若不帶引數,則按當前系統的設定返回格式化的字串 os.date() <=> os.date(“%c”)
t = os.date("*t" , os.time()); --得到的是當前的時間,第二個引數預設也是當前的時間
for i, v in pairs(t) do
print(i, v);
end
--最後得到年月日等資料,
對於其它的格式字串,os.date會將日期格式化為一個字串
print(os.date("today is %A, in %B")) -->today is Tuesday, in May
print(os.date("%x", 906000490)) -->09/16/1998
所有格式化字串:
%a 一星期中天數的簡寫 (Wed)
%A 一星期中天數的全稱 (Wednesday)
%b 月份的簡寫 (Sep)
%B 月份的全稱 (September)
%c 日期和時間 (09/16/98 23:48:10)
%d 一個月中的第幾天 (16)[0 ~ 31]
%H 24小時制中的小時數 (23)[00 ~ 23]
%I 12小時制中的小時數 (11)[01 ~ 12]
%j 一年中的第幾天 (259)[01 ~ 366]
%M 分鐘數 (48)[00 ~ 59]
%m 月份數 (09)[01 ~ 12]
%P “上午(am)” 或 “下午(pm)” (pm)
%S 秒數 (10)[00 ~ 59]
%w 一星期中的第幾天 (3)[0 ~ 6 = 星期天 ~ 星期六]
%W 一年中的第幾個星期 0 ~ 52
%x 日期 (09/16/98)
%X 時間 (23:48:10)
%y 兩位數的年份 (90)[00 ~ 99]
%Y 完整的年份 (2009)
%% 字串’%’
根據計算機時間得到當前時間
function gettimeDateStr(time) --time是一個具體存在的時間
local t = os.date("*t", time )
return string.format("%.4d年%.2d月%.2d日", t.year, t.month, t.day) --返回年月日
return string.format("%.2d月%.2d日%.2d:%.2d", t.month, t.day, t.hour, t.min) --返回月日時等
end
倒計時函式(根據計算機時間看出還剩多少時間)
function getLeftTime(leftTime) --倒計時的計算機時間
local leftStr = ""
if leftTime > 0 then
if leftTime < 60 then
leftStr = leftTime .. "秒"
else
if leftTime % 60 > 0 then
leftStr = (leftTime % 60) .. "秒"
end
leftTime = math.floor(leftTime / 60)
if leftTime < 60 then
leftStr = leftTime .. "分" .. leftStr
else
if leftTime % 60 > 0 then
leftStr = (leftTime % 60) .. "分"
end
leftTime = math.floor(leftTime / 60)
if leftTime < 24 then
leftStr = leftTime .. "小時" .. leftStr
else
if leftTime % 24 > 0 then
leftStr = (leftTime % 24) .. "小時"
end
leftStr = math.floor(leftTime / 24) .. "天" .. leftStr
end
end
end
end
return leftStr
end