在iOS中获取时间戳然后计算时间的最佳方式是什么? 2个时间戳?
它是什么数据类型?如果是NSTimeInterval,这个值是否可以存储在字典中,然后写入plist?
答案 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
参考。你所需要的就是那里。