2010-04-09 3 views
2

я просто пытаются переформатировать дата:NSDateFormatter работает только на симуляторе?

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
NSDate *date = [[NSData alloc] init]; 
//Mon, 05 Apr 2010 14:27:48 -0700 
[formatter setDateFormat:@"E, dd MMM yyyy HH:mm:ss Z"]; 
date = [formatter dateFromString:self.currentItemValue];   

[formatter setDateFormat:@"yyyy-MM-dd HH:mm"]; 
self.currentItem.pubDate = [formatter stringFromDate:date]; 
[formatter release]; 

Он работает на тренажере, но на устройстве я только получаю (нуль).

Благодарим за помощь!

еще несколько тестов:

NSString *string = @"Fri, 12 Dec 2008 18:45:15 -0800"; 
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
dateFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss Z"]; 
NSDate *date = [dateFormatter dateFromString:string]; 
[dateFormatter setDateStyle:NSDateFormatterLongStyle]; 
//here i got (null) on the device but it works on simulator... 
NSLog(@"date %@", [dateFormatter stringFromDate:date]); 
+1

В каком регионе находится устройство? – DyingCactus

+0

Я пробую что-то еще .. я отредактировал свой вопрос ... – phx

+4

На устройстве, в разделе «Настройки», «Общие», «Международный», что такое «Формат региона»? Если это не английский регион, вам нужно использовать метод setLocale в форматировании даты и установить его в en_US, чтобы он мог анализировать английские имена дня и месяца в ваших входных строках. Например, http://stackoverflow.com/questions/1559182/how-do-you-interpret-dates-with-nsdateformatter/1559284#1559284. – DyingCactus

ответ

6

DyingCactus был прав!

[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"] autorelease]]; 

решает проблему. Спасибо !!!!

+0

[dateFormatter setLocale: [NSLocale localeWithLocaleIdentifier: @ "en_GB"]]; –

 Смежные вопросы

  • Нет связанных вопросов^_^