获得精确的时间戳和时间差异

时间:2011-07-12 09:38:26

标签: iphone objective-c ios time

在iOS中获取时间戳然后计算时间的最佳方式是什么? 2个时间戳?

它是什么数据类型?如果是NSTimeInterval,这个值是否可以存储在字典中,然后写入plist?

3 个答案:

答案 0 :(得分:6)

Unix time is best。实际上,使用NSTimeInterval可以很容易地计算日期。它只是一个双,所以:

NSDate *startDate;
NSDate *endDate;
NSTimeInterval interval;
// assuming start and end dates have a value
interval = [endDate timeIntervalSince1970] - [startDate timeIntervalSince1970];

当要将字典序列化或写入Couch或Mongo等文档数据库时,我通常将时间间隔记录为NSString:

NSDate *dateToStore;
// assume dateToStore has a value
NSTimeInterval aTimeInterval = [dateToStore timeIntervalSince1970];
NSString *aStringObject = [NSString stringwithFormat:@"%f", aTimeInterval];
NSDictionary *aDict = [NSDictionary dictionaryWithObject:dateAsString
                                                  forKey:@"aKey"];

然后,当您使用字典对象时,您可以再次阅读它:

NSTimeInterval newTimeInterval = [[aDict valueForKey:"aKey"] doubleValue];
NSDate *retreivedDate = [NSDate dateWithTimeIntervalSince1970:newTimeInterval];

如果它是plist,你可以跳过字符串转换。

答案 1 :(得分:2)

NSTimeInterval double typedef 。因此,您可以使用

将时间间隔值作为 NSNumber 添加到字典中
NSNumber *ti_num = [NSNumber numberWithDouble:aTimeInterval];

答案 2 :(得分:-2)

请查看NSDate参考。你所需要的就是那里。