ios 幾種時間計算的使用
阿新 • • 發佈:2019-02-10
所屬框架層:
NSDate 屬於Foundation
CFAbsoluteTimeGetCurrent() 屬於 CoreFoundation
mach_absolute_time 系統底層API
1.
NSDate、CFAbsoluteTimeGetCurrent
()常用於日常時間、時間戳的表示,與伺服器之間的資料互動;返回的時鐘時間將會會網路時間同步.
2.
其中 CFAbsoluteTimeGetCurrent() 相當於[[NSDate data] timeIntervalSinceReferenceDate];
3.
CACurrentMediaTime() 常用於測試程式碼的效率。
CACurrentMediaTime 與 mach_absolute_time()
用於計算時間間隔是最準確的,mach_absolute_time()
和CACurrentMediaTime()
是基於內建時鐘的,能夠更精確更原子化地測量,並且不會因為外部時間變化而變化(例如時區變化、夏時制、秒突變等),但它和系統的uptime有關,系統重啟後CACurrentMediaTime()會被重置。
4.
計算 IOS 的Tickout
uint64_t getTickCount(void){static mach_timebase_info_data_t sTimebaseInfo;uint64_t machTime = mach_absolute_time();// Convert to nanoseconds - if this is the first time we've run, get the timebase.if(sTimebaseInfo.denom ==0){(void) mach_timebase_info(&sTimebaseInfo);}// Convert the mach time to millisecondsuint64_t millis =((machTime /1000000)* sTimebaseInfo.numer)/ sTimebaseInfo.denom;return millis;}
參考:
http://blog.csdn.net/skymingst/article/details/41892445
http://stackoverflow.com/questions/741830/getting-the-time-elapsed-objective-c