Как получить секунды, прошедшие с даты строки? - PullRequest
0 голосов
/ 10 октября 2010

В target-C я хочу определить количество секунд, прошедших от строки даты, например: «Сб, 09 окт. 2010 06:14:50 +0000»

Как это сделать?Я заблудился в запутанных описаниях NSDateFormatter.

1 Ответ

3 голосов
/ 10 октября 2010

В этом примере показаны секунды, прошедшие с текущего времени:

NSString *dateString = @"Sat, 09 Oct 2010 18:14:50 +0000";

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];

NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[df setLocale:usLocale];
[usLocale release];

NSDate *date = [df dateFromString:dateString];
[df release];

NSTimeInterval secondsSinceNow = [date timeIntervalSinceNow];

NSLog(@"date = %@", date);
NSLog(@"secondsSinceNow = %f", secondsSinceNow);

Обратите внимание, что если регион телефона не является англоязычным, преобразование в дату завершится неудачей, поскольку "Sat" и "Oct" могут не означать одно и то же на другом языке. Вы можете принудительно установить локаль в dateFormatter, чтобы избежать этого.

Знаки для использования в форматировании даты можно найти здесь .

...