2022年的 Tcl/Tk 編程入門參考 14.時間
clock命令是面向日期、時間方面的命令。time命令統(tǒng)計代碼的執(zhí)行時間,或者計算多次運(yùn)行同一代碼段的平均運(yùn)行時間。??我是覺得這兩個名字互換一下會更好些。
Unix時間戳
因?yàn)門CL語言最早應(yīng)用于UNIX系統(tǒng),所以它內(nèi)部的時間體系也沿用了UNIX時間。即以1970年1月1日00時00分00秒為起點(diǎn)到現(xiàn)在的總秒數(shù),也就是從1970年元旦到現(xiàn)在一共過了多少秒。這個時間體系對計算機(jī)行業(yè)影響深遠(yuǎn),很多語言也都沿用或者支持UNIX時間戳。UNIX時間始終是一個整數(shù),從2001年9月以后,以秒為單位就已經(jīng)是10位的整數(shù)了。此外也有擴(kuò)展的高精度UNIX時間,以毫秒為單位的話,就是13位的整數(shù);以微秒為單位就是16位整數(shù)。
time
time命令統(tǒng)計代碼的執(zhí)行時間,在設(shè)置重復(fù)次數(shù)參數(shù)時計算多次運(yùn)行同一代碼段的平均運(yùn)行時間
用法: time 代碼段 ?重復(fù)次數(shù)?
?
clock
clock seconds:返回從1970-1-1零時至今的秒數(shù)
clock milliseconds/microseconds:以毫秒/微秒返回時間
clock clicks:用于高精度計時器(比如高精度秒表)或者跟記時有關(guān)的基準(zhǔn)測試。執(zhí)行該命令就返回一個當(dāng)前系統(tǒng)支持的最高精度的記時數(shù)值(比如CPU周期計數(shù)器),這個值會隨著時間增長,再次執(zhí)行時就可以計算兩者之間的時差。注意:返回的數(shù)值僅供計算差值,與當(dāng)前的日期/時間無關(guān)。
clock add:時間加減(支持負(fù)數(shù))單位:秒seconds 分minutes 時hours 日days 周weeks 月months 年years
clock format:轉(zhuǎn)換為其它時間格式
clock scan:其它時間格式轉(zhuǎn)換為Unix時間戳秒數(shù)
?
北京時區(qū)問題
clock format/scan 時區(qū)里沒有“北京時間”,因?yàn)閲H標(biāo)準(zhǔn)化組織制定時區(qū)名的時候,我國一共分成了五個時區(qū):哈爾濱、上海、重慶、烏魯木齊和喀什。然后我國統(tǒng)一使用北京時間之后,因?yàn)闅v史遺留原因,國際標(biāo)準(zhǔn)化組織沒有更新時區(qū)名,所以在時區(qū)名里找不到“北京時區(qū)”,可以用上海時區(qū)代替。此外,雖然我國這五個時區(qū)都有自己定義的時間,但是TCL語言實(shí)際只實(shí)現(xiàn)了上海和烏魯木齊兩個時區(qū):哈爾濱、重慶和上海是一樣的;喀什和烏魯木齊是一樣的,喀什時區(qū)名是Kashgar。