0

有没有办法在目标 c 的当前时间中增加一毫秒。我将从服务器获取时间戳并希望以毫秒重复显示(我不想使用系统时间)。感谢任何帮助。

提前致谢 。

4

2 回答 2

1

将时间戳读入 NSDate。比使用

+ (id)dateWithTimeInterval:(NSTimeInterval)seconds sinceDate:(NSDate *)date

应该管用。

于 2013-04-24T12:17:39.443 回答
0

您需要使用NSTimer该类的对象。一些示例代码:

    -(void)startTimer {

        theTimer = [NSTimer scheduledTimerWithTimeInterval:1.0/1000.0 target:self selector:@selector(updateTimer) userInfo:nil repeats:YES];

        //the method updateTimer will be called once every millisecond
    }

    -(void)updateTimer {
        //add one millisecond to the global time variable and display it in a label
    }

    -(void)stopTimer {
        [theTimer invalidate];  //pauses the timer
    }

编辑

对于使用全局时间变量,NSDate可能是正确的类。您可以使用时间间隔初始化对象,例如。现在600秒前:

NSDate *globalDateTime = [[NSDate alloc] initWithTimeIntervalSinceNow:-600];

将时间增加 1 毫秒:

globalDateTime = [globalDateTime dateByAddingTimeInterval:1.0/1000.0];

并在字符串中填充您的全局时间变量:

NSDateFormatter *dateFormatter      = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm:ss"]; // use yyyy-MM-dd if you need to show the year, month or day
NSString *dateTimeString            = [dateFormatter stringFromDate:globalDateTime];

NSTimeInterval 类“在 10,000 年的范围内产生亚毫秒精度。”

Refer to apple's documentation on NSDate for more details:

于 2013-04-24T12:23:03.067 回答