如何以格式字符串调用NSLOG的时间以及这段时间的进一步使用



如何获得我以格式字符串调用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

相关内容

最新更新