如何获得我以格式字符串调用nslog的时间,然后再使用这段时间?我需要时间微秒?
2017-09-28 20:19:39.383263+0300 NIR[5677:1383138] а
这是您可以使用的方法。它带有当前时间戳(NSString *)。这有点混乱,因为没有格式化的字符串可以获取包括毫秒在内的几秒钟:
- (NSString*)dateTimeWithMS
{
CFAbsoluteTime timeInSeconds = CFAbsoluteTimeGetCurrent();
NSDate *d = [NSDate dateWithTimeIntervalSinceReferenceDate:timeInSeconds];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateFormat = @"yyyy-MM-dd H:mm:ss";
NSString *s = [df stringFromDate:d];
int ms = (int) round(1000 * (timeInSeconds - floor(timeInSeconds)));
NSString *result = [NSString stringWithFormat:@"%@.%000d", s, ms];
return(result);
}
基本上我们有时间,使用标准格式,然后添加毫秒。
您可以对此进行测试:
for(int i = 0; i < 10; ++i)
NSLog(@"Time #%d with MS = %@", i, [self dateTimeWithMS]);
您将获得这样的输出 - 您可以看到Xcode的时间戳匹配我们的:
2017-09-28 18:28:10.781 TimeMillisecondTest[2497:463749] Time #0 with MS = 2017-09-28 18:28:10.780
2017-09-28 18:28:10.781 TimeMillisecondTest[2497:463749] Time #1 with MS = 2017-09-28 18:28:10.781
2017-09-28 18:28:10.781 TimeMillisecondTest[2497:463749] Time #2 with MS = 2017-09-28 18:28:10.782
2017-09-28 18:28:10.781 TimeMillisecondTest[2497:463749] Time #3 with MS = 2017-09-28 18:28:10.782
2017-09-28 18:28:10.782 TimeMillisecondTest[2497:463749] Time #4 with MS = 2017-09-28 18:28:10.782
2017-09-28 18:28:10.782 TimeMillisecondTest[2497:463749] Time #5 with MS = 2017-09-28 18:28:10.782
2017-09-28 18:28:10.782 TimeMillisecondTest[2497:463749] Time #6 with MS = 2017-09-28 18:28:10.782
2017-09-28 18:28:10.782 TimeMillisecondTest[2497:463749] Time #7 with MS = 2017-09-28 18:28:10.783
2017-09-28 18:28:10.782 TimeMillisecondTest[2497:463749] Time #8 with MS = 2017-09-28 18:28:10.783
2017-09-28 18:28:10.783 TimeMillisecondTest[2497:463749] Time #9 with MS = 2017-09-28 18:28:10.783