lua的时间与日期

--lua中操作系统库os提供4个函数os.clock、os.time、os.date、os.difftime

--@return number 程序消耗的Cpu时间,-秒为单位的浮点数(精确3位小数,即毫秒)

local clock_stamp1 = os.clock()

for i = 1, 100000 do

    local j = i + 1

end

--输出程序循环的消耗时间

--print(os.clock() - clock_stamp1)

--@return number 当前时间的时间戳(以秒为基本单位的整型数,在Windows和POSIX相对1970.1.1)

local time_stamp = os.time()

--print(time_stamp)

--@return table{year = 2020, month = 1, day(一个月中第几天) = 2, yday(一年中第几天) = 2, wday(一个星期中第几天) = 4, hour = 14, min = 52, sec = 10, isdst(是否使用夏令时) = false}  当前时间

local date = os.date("*t")

for k,v in pairs(date) do

    --print(k .. ":", v)

end

--日期转时间:date -> time

local time_stamp1 = os.time(date)

--在忽略程序运行时间小于1s时相等

--print(time_stamp1 == time_stamp)

--时间转日期,os.date的第二个参数不写(==nil)都是表示当前时间的时间戳

time_stamp1 = os.time({year = 1970, month = 2, day = 1})

local date1 = os.date("*t", nil)

date1 = os.date("*t", time_stamp1)

for k,v in pairs(date1) do

    print(k .. ":", v)

end

--时间转日期的格式化 @return string

print(os.date("year:%Y month:%m day:%d yday:%j wday:%a hour:%H min:%M sec:%S"))

--其他常用指示符,%W(一年中第几周),%X(时间,例如:15:45:45)

--返回两个时间的插值 在Windows和POSIX等系统中等于两个时间戳相减

--@return number 以秒为单位

--@param time1 number 秒

--@param time2 number 秒

print(os.difftime(os.time(), time_stamp1))

--时区的计算

function getCurTimeZone()

    --获得0时区的时间 os.date("!*t")

    local zeroZoneTime = os.time(os.date("!*t"))

    local curZoneTime = os.time()

    return os.difftime(curZoneTime, zeroZoneTime) / (60 * 60)

end

print(getCurTimeZone())

你可能感兴趣的:(lua的时间与日期)