1. 程式人生 > >ios 幾種時間計算的使用

ios 幾種時間計算的使用

所屬框架層:

NSDate 屬於Foundation 

CFAbsoluteTimeGetCurrent() 屬於 CoreFoundation

CACurrentMediaTime() 屬於 QuartzCore

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