實現的功能:
獲取mac os系統的毫秒數
獲取秒數
秒數/毫秒數與日期格式的轉換
知識點:
用lua自帶的函式os.time()獲取秒數
lua自帶的函式只能獲取到秒,要獲取到毫秒,需使用lzmq.timer,或者是socket(兩個都需要使用luarocks安裝)
os.clock返回乙個程式使用cpu時間的乙個近似值
os.date格式化日期:
local zmq_timer = require("lzmq.timer")
local ms = zmq_timer.absolute_time()
print("ms: "..ms)
--milliseconds: 1573537133261.0
local s = os.time()
print("s: "..s)
--second: 1573537133
local time2date = os.date("%x", os.time())
print("time2date: "..time2date)
--time2date: 11/12/19
local date = os.date("%y-%m-%d-%h-%m-%s")
print("date: "..date)
--date: 2019-11-12-13-38-53
function time_stamp_from_ms(t_ms)
local s_from_ms = math.floor(t_ms/1000)
local s_to_ms = 1000 * math.floor(t_ms/1000)
local ms_number = t_ms - s_to_ms
return os.date("%y-%m-%d %h:%m:%s.", s_from_ms)..string.format("%03d", ms_number)
endlocal ms2str = time_stamp_from_ms(ms)
print("ms2timestamp: "..ms2str)
--ms2timestamp: 2019-11-12 13:38:53.261
function time_stamp()
local ms = zmq_timer.absolute_time() -- use lzmq
local s = os.time()
return os.date("%y-%m-%d %h:%m:%s.", s)..string.format("%03d", (ms-s*1000))
endlocal c_ms2str = time_stamp()
print("current_ms_2_timestamp: "..c_ms2str)
--current_ms_2_timestamp: 2019-11-12 13:38:53.262
local socket = require("socket")
local sms = socket.gettime()
print("socket ms: "..sms)
--socket ms: 1573537133.2631
print(os.clock())
--0.005693
os.date()中的時間格式
lua math函式庫有%a : abbreviated weekday name (e.g., wed)
%a : full weekday name (e.g., wednesday)
%b : abbreviated month name (e.g., sep)
%b : full month name (e.g., september)
%c : date and time (e.g., 09/16/98 23:48:10)
%d : day of the month (16) [01-31]
%h : hour, using a 24-hour clock (23) [00-23]
%i : hour, using a 12-hour clock (11) [01-12]
%m : minute (48) [00-59]
%m : month (09) [01-12]
%p : either "am" or "pm" (pm)
%s : second (10) [00-61]
%w : weekday (3) [0-6 = sunday-saturday]
%x : date (e.g., 09/16/98)
%x : time (e.g., 23:48:10)
%y : full year (1998)
%y : two-digit year (98) [00-99]
%% : the character '%'
函式名描述示例
結果pi
圓周率math.pi
3.1415926535898
abs取絕對值
math.abs(-2012)
2012
ceil
向上取整
math.ceil(9.1)
10floor
向下取整
math.floor(9.9)
9max
取引數最大值
math.max(2,4,6,8)
8min
取引數最小值
math.min(2,4,6,8)
2pow
計算x的y次冪
math.pow(2,16)
65536
sqrt
開平方math.sqrt(65536)
256mod
取模math.mod(65535,2)
1modf
取整數和小數部分
math.modf(20.12)
20 0.12
randomseed
設隨機數種子
math.randomseed(os.time())
random
取隨機數
math.random(5,90)
5~90
rad角度轉弧度
math.rad(180)
3.1415926535898
deg弧度轉角度
math.deg(math.pi)
180exp
e的x次方
math.exp(4)
54.598150033144
log計算x的自然對數
math.log(54.598150033144)
4log10
計算10為底,x的對數
math.log10(1000)
3frexp
將引數拆成x * (2 ^ y)的形式
math.frexp(160)
0.625 8
ldexp
計算x * (2 ^ y)
math.ldexp(0.625,8)
160sin
正弦math.sin(math.rad(30))
0.5cos
余弦math.cos(math.rad(60))
0.5tan
正切math.tan(math.rad(45))
1asin
反正弦math.deg(math.asin(0.5))
30acos
反余弦math.deg(math.acos(0.5))
60atan
反正切math.deg(math.atan(1))
45
Lua獲取時間戳ms
程式執行函式,花了比較多時間,怎麼優化,提速。當然是分段,看函式各部分花了多長時間,對於消耗時間較多的地方進行針對性的優化,效果顯著。時間消耗計算,等同於用當前時間點減去過去時間點的時間差。local socket require socket local start time socket.get...
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...
Python中的時間戳
sublime在對python的支援上有 塊補充功能,即在寫完一些判斷字元如 if或者while之類,會自動出先pass的佔位符,這種佔位符雖然不執行任何動作,但對提示 寫作比較好。另外學習了time模組,time模組是python裡面乙個常用模組,在資料分析中,很多情況下都會用到時間,在pytho...