天天看點

iOS正确擷取時間戳的代碼

工作需要,輸出時間戳。找了網上的代碼,輸出一看,結果錯誤。仔細分析了流程,并無問題。那麼就是代碼有問題了。錯誤在哪裡?在少了個括号。

 正确代碼是:

 NSString *timeStamp = [NSString stringWithFormat:@"%ld",

 (long)([[NSDate date] timeIntervalSince1970]*1000)];

 與網上代碼不同的是,long造型的對象不同,後面有個括号。

 為什麼這樣就對了呢?

 NSDate得到的是一個浮點數,整數部分是秒,小數部分是微秒。

 是以要乘1000得到毫秒的整數,然後造型去掉小數。

 時間戳的格式,一般建議為"HH:mm:ss.SSS"。代碼如下:

//避免每次都要建立。
 
self.timeStampFormat = [[NSDateFormatter alloc] init] ; [self.timeStampFormat setDateStyle:NSDateFormatterMediumStyle];
 
[self.timeStampFormat setTimeStyle:NSDateFormatterShortStyle];
 
 [self.timeStampFormat setDateFormat:@"HH:mm:ss.SSS"]; // ----------設定你想要的格式,hh與HH的差別:分别表示12小時制,24小時制
 
//設定時區
 
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
 
[self.timeStampFormat setTimeZone:timeZone];
       

繼續閱讀