iOS將時間NSDate轉(zhuǎn)化為毫秒時間戳的方法示例
前言
對于將NSDate類型轉(zhuǎn)換為時間戳,相信大家肯定都會,這樣的示例代碼,在百度等搜索引擎上面一搜索就是一大篇的東西,但是,大家有沒有注意到的是 通過那些方法轉(zhuǎn)換得到的時間戳是 10位的數(shù)值,這個數(shù)值在轉(zhuǎn)化為 NSDate類型的時候,就會出點兒錯,你會發(fā)現(xiàn),每一個時間的 毫秒都是為000的;
錯誤的毫秒輸出
而正確的應(yīng)該是下面這樣的輸出:
正確的毫秒輸出
好了,接下來就是問題所在了:其實呢,并不是我們代碼出錯了,而是因為 [[NSDate date] timeIntervalSince1970] 雖然可以獲取到后面的毫秒、微秒 ,但是在保存的時候省略掉了。如一個時間戳不省略的情況下為 1395399556.862046 ,省略掉后為一般所見 1395399556 。所以想取得毫秒時用獲取到的時間戳 *1000 ,想取得微秒時 用取到的時間戳 * 1000 * 1000 。這樣就解釋了上面的10位數(shù)值的問題,當(dāng)你取毫秒的時候,就會變成13位數(shù)值了。我想這樣大家應(yīng)該明白了吧!
當(dāng)然,說了 這么多理論性的東西,為的就是我們接下來會附上的代碼的:
將這段代碼寫在 你需要獲取時間戳和轉(zhuǎn)換的地方,而我因為是簡單示范,就放在-viewDidload里面的。
long long time = [self getDateTimeTOMilliSeconds:[NSDate date]]; NSLog(@"%llu",time); NSDate *dat = [self getDateTimeFromMilliSeconds:time]; NSDateFormatter * formatter = [[NSDateFormatter alloc ] init]; [formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss.SSS"]; NSString *date = [formatter stringFromDate:dat]; NSString *timeLocal = [[NSString alloc] initWithFormat:@"%@", date]; NSLog(@"\n%@", timeLocal);
里面包含了自己寫出來了2個小函數(shù),這2個函數(shù)呢,是互逆的:
//將時間戳轉(zhuǎn)換為NSDate類型 -(NSDate *)getDateTimeFromMilliSeconds:(long long) miliSeconds { NSTimeInterval tempMilli = miliSeconds; NSTimeInterval seconds = tempMilli/1000.0;//這里的.0一定要加上,不然除下來的數(shù)據(jù)會被截斷導(dǎo)致時間不一致 NSLog(@"傳入的時間戳=%f",seconds); return [NSDate dateWithTimeIntervalSince1970:seconds]; } //將NSDate類型的時間轉(zhuǎn)換為時間戳,從1970/1/1開始 -(long long)getDateTimeTOMilliSeconds:(NSDate *)datetime { NSTimeInterval interval = [datetime timeIntervalSince1970]; NSLog(@"轉(zhuǎn)換的時間戳=%f",interval); long long totalMilliseconds = interval*1000 ; NSLog(@"totalMilliseconds=%llu",totalMilliseconds); return totalMilliseconds; }
這樣,你就可以得到你想要的13位時間戳,并且從這個時間戳里面獲取正確的時間(精確到毫秒喲?。?。
附:時間戳轉(zhuǎn)NSDate
+ (NSDate *)getLocateTime:(unsigned int)timeStamp { double dTimeStamp = (double)timeStamp; NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:dTimeStamp]; return confromTimesp; }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
iOS中使用schema協(xié)議調(diào)用APP和使用iframe打開APP的例子
這篇文章主要介紹了iOS中使用schema協(xié)議調(diào)用APP和使用iframe打開APP的例子,用在瀏覽器中打開APP,需要的朋友可以參考下2014-08-08iOS中使用NSURLConnection處理HTTP同步與異步請求
NSURLConnection的作用現(xiàn)在已經(jīng)基本被NSURLSession所取代,所以我們簡單了解下iOS中使用NSURLConnection處理HTTP同步與異步請求的方法即可:2016-07-07詳解iOS中position:fixed吸底時的滑動出現(xiàn)抖動的解決方案
這篇文章主要介紹了詳解iOS中position:fixed吸底時的滑動出現(xiàn)抖動的解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12iOS開發(fā)使用JSON解析網(wǎng)絡(luò)數(shù)據(jù)
JSON是一種輕量級的數(shù)據(jù)格式,一般用于數(shù)據(jù)交互,服務(wù)器返回給客戶端的數(shù)據(jù),一般都是JSON格式或者XML格式(文件下載除外)下面我們就看下在IOS開發(fā)中如何結(jié)合json呢2016-02-02iOS?UITextView?實現(xiàn)類似微博的話題、提及用戶效果
這篇文章主要介紹了iOS?UITextView?實現(xiàn)類似微博的話題、提及功能,基本思路是使用正則匹配出成對的#,再利用UITextView的富文本實現(xiàn)高亮效果,需要的朋友可以參考下2022-06-06