API iPhone + Twitter: преобразование времени?

Есть ли простой способ конвертировать временную метку, которую вы получаете из twitter в unix time или minutes с тех пор? Я мог разбирать строку и преобразовывать все сам, но я надеюсь, что есть способ конвертировать, который не нуждается в этом. Ниже приведен пример элемента created_at с меткой времени.

Sun Mar 18 06:42:26 +0000 2007

Ответ 1

Вы можете использовать NSDateFormatter с чем-то вроде этого:


NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormatter setLocale:usLocale]; 
[usLocale release];
[dateFormatter setDateStyle:NSDateFormatterLongStyle];
[dateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4];

// see http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns
[dateFormatter setDateFormat: @"EEE MMM dd HH:mm:ss Z yyyy"];

NSDate *date = [dateFormatter dateFromString:[currentDict objectForKey:@"created_at"]];
[dateFormatter release];

NSTimeInterval seconds = [date timeIntervalSince1970];

Ответ 2

Я изо всех сил боролся с этим весь день, но этот поток помог мне найти решение.

Вот как я конвертирую атрибут Twitter "created_at" в NSDATE;

NSDateFormatter *fromTwitter = [[NSDateFormatter alloc] init];
// here we set the DateFormat  - note the quotes around +0000
[fromTwitter setDateFormat:@"EEE MMM dd HH:mm:ss '+0000' yyyy"];
// We need to set the locale to english - since the day- and month-names are in english
[fromTwitter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en-US"]];

NSString *dateString = [item objectForKey:@"created_at"];
NSDate *tweetedDate = [fromTwitter dateFromString:dateString];

Я надеюсь, что кто-то найдет это полезным.

Ответ 3

Распечатайте запрос функции с Apple и сообщите им, что вы хотите использовать эту функцию на iPhone. NSDateFormatter предоставляет устаревший метод init, который принимает логический флаг, указывающий, что вы хотите, чтобы он анализировал естественный язык, но он доступен только на OS X. Wil Shipley написал интересный пост некоторое время назад об этой функциональности в контексте эвристики и человеческих факторов.

Не похоже, что Apple предоставит эту функциональность, поскольку эта заметка будет указывать из Документы NSDateFormatter:

iPhone OS. Примечание. Поддержка iPhone OS только поведение 10.4+. 10,0-стиль методы и строки формата не доступно на iPhone OS.

Другими словами, я думаю, вам придется самому разобрать его.