Получение точных временных меток и различий во времени - PullRequest
1 голос
/ 12 июля 2011

Как лучше всего получить временные метки в iOS, а затем рассчитать время, например, на. 2 отметки времени?

Какой это тип данных? и если это NSTimeInterval, может ли это значение быть сохранено в словаре, который затем записывается в plist?

Ответы [ 3 ]

6 голосов
/ 12 июля 2011

Лучше всего 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];

Если он будет в списке, вы можете просто пропустить преобразование строки.

2 голосов
/ 12 июля 2011

NSTimeInterval - это typedef из double .Таким образом, вы можете добавить значение интервала времени в словарь как NSNumber , используя

NSNumber *ti_num = [NSNumber numberWithDouble:aTimeInterval];
0 голосов
/ 12 июля 2011

Просто взгляните на NSDate ссылку. Все, что вам нужно, там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...