我对NSDateFormatter和iOS有意见。实际上,我在这里找到了对问题的认识和解释:
http://www.cocoanetics.com/2011/12/ios-5-breaking-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"];当我记录outputFormatter字符串formattedDate:formattedDate I get null时,超出我控制范围的输入字符串将类似于“Tue,03 Jan 2012 00:00:00 +0100”
最初的语言环境是“en_US”,但我更改了它,希望这会有所帮助。
它也会帮助这个帖子的人,这似乎是一个死胡同:
发布于 2012-02-13 19:15:53
对于所有在这上面花了脑筋的人:这都是我愚蠢的错误:需要格式化的输入字符串不是"Mon,13Feb 2012 00:00:00 +0100“,而是"Mon,13 Feb 2012 00:00:00 +0100”,看到了吗?嗯,在NSLogging中我没有看到尾随的空格。讽刺的是:字符串后面的许多空格和回车在这里也没有显示!
不知何故,iOS 4并不关心这一点。iOS5要挑剔得多,而且很可能是这样。所以我按如下方式解决了这个问题:
NSString *trimmedString = [inputstring stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];我希望这也能对你有所帮助。
发布于 2012-01-26 19:42:35
试试这个:
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];您也可以通过向NSDateFormatter添加setLocale参数来添加区域。
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];https://stackoverflow.com/questions/8802254
复制相似问题