Вопрос

У меня есть проблема с NSDateFormatter и iOS. Я на самом деле нашел признание и объяснение проблемы здесь:

http://www.cocoanetics.com/2011/12/ios-5-fruce-nsdateformatter/

Тем не менее, мой мозг не может обработать эту информацию, чтобы перевести это в решение для моей конкретной ситуации. Я надеюсь, что вы, ребята, сможете мне помочь:

Может ли кто -нибудь сказать мне, как сделать следующую работу в iOS5? Раньше это работало нормально:

NSLocale *myLocale = [[NSLocale alloc] initWithLocaleIdentifier:@”en_GB”];
[inputFormatter setLocale: myLocale];
[myLocale release];
[inputFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
NSDate *formattedDate = [inputFormatter dateFromString: feedDateString];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"EEEE d MMMM"];

Входная строка, которая находится за пределами моего контроля, будет что -то вроде «Вт, 03 января 2012 г. 00:00:00 +0100 ″, когда я регистрирую [outputformatter stringfromDate: formattedDate] Я получаю NULL

Первоначальная локаль была «en_us», но я изменил это в надежде, что это поможет.

Это также поможет людям в этом посте, это кажется тупиковым постом:

NSDateFormatter на iOS 5 - любой другой способ использовать?

Это было полезно?

Решение 2

Всем вам, проведя время мозга на это: все это было моей глупой собственной ошибкой: входная строка, которую нужно было отформатировать, не была «Mon, 13 февраля 2012 г. 00:00:00 +0100», но на самом деле это был «Mon, 13 февраля 2012 г. 00:00:00 +0100 "Видите ли? Ну, я не видел затягивающих белых помещений во время NSLOGGING. [Ирония: множество пробелов и возвращение после того, как строка здесь тоже не отображается!

И почему -то iOS 4 не заботился об этом. IOS5 просто гораздо более разборчив и, вероятно, справедливо. Итак, я решил эту вещь следующим образом:

NSString *trimmedString = [inputstring stringByTrimmingCharactersInSet:
                               [NSCharacterSet whitespaceAndNewlineCharacterSet]];

Я надеюсь, что это также может помочь вам.

Другие советы

Попробуй это:

NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
        
NSString *str = [outputFormatter stringFromDate:[NSDate date]];
/* 
   Do something with this string
*/
[outputFormatter release];

Вы также можете добавить регион, добавив Setlocale Параметр в nsdateformatter.

NSLocale *myLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
[outputFormatter setLocale: myLocale];
        
NSString *str = [outputFormatter stringFromDate:[NSDate date]];

/* 
   Do something with this string
*/

[outputFormatter release];
[myLocale release];
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top