Лучше всего Unix .Действительно, использование 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];
Если он будет в списке, вы можете просто пропустить преобразование строки.