2015-05-15 2 views
0

Вот образец дата: ср, 13 мая 2015 16:10:00 CESTЕсть проблемы с NSDateFormatter при разборе

Мой форматировщик Эйнт работает

@"EEE, dd MMM yyyy HH:mm:ss vvvv" 

Что я должен изменить?

UPD: полный код

NSString* formattedDayWithString(NSString* date){ 
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init]; 
NSLocale *locale = [NSLocale currentLocale]; 
NSString *localeId = [locale displayNameForKey:NSLocaleIdentifier 
             value:[locale localeIdentifier]]; 

SLog(@"%@ date:%@", localeId, date); 
[inputFormatter setLocale: locale]; 
[inputFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss vvvv"]; 
NSDate *formattedDate = [inputFormatter dateFromString: date]; 
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc]init]; 
[outputFormatter setDateFormat:@"d'.' MMMM yyyy"]; 

NSString* dateStr = [[NSString alloc] initWithFormat: @"%@",[outputFormatter stringFromDate:formattedDate]]; 
return dateStr; 

}

+0

Показать актуальный код в своем вопрос. И укажите, в каком месте вы находитесь. – rmaddy

+0

Изучите [названия часовых поясов] (http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Using_Time_Zone_Names) (и получайте удовольствие!) –

+0

Я обновил (а) вопрос –

ответ

0

«ЦЭСТ» является «коротким специальным форматом, не местоположение» и соответствующий символ поля даты «г», а не «против»:

[inputFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss z"]; 

Кроме того, вы, возможно, придется установить дату форматера локаль явно «en_GB» , как описано в Nsdateformatter + Timezone issue.

+0

Я пробовал z, он не работает –

+0

@Leonid: Это сработало для меня. Вы установили локаль в en_GB? –

+0

Спасибо! он работает сейчас –

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