工作需要,輸出時間戳。找了網上的代碼,輸出一看,結果錯誤。仔細分析了流程,并無問題。那麼就是代碼有問題了。錯誤在哪裡?在少了個括号。
正确代碼是:
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];