ios - 日期格式如 "Monday, December 10"在 ios 5.1 中错误显示

标签 ios ipad ios5

我正在使用下面的代码。

NSString * weekdayString = [[self date] descriptionWithLocale:@"%A"];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:usLocale];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
dateString = [NSString stringWithFormat:@"%@,%@",weekdayString,[dateFormatter stringFromDate:[self date]]];
NSArray * components = [dateString componentsSeparatedByString:@","];
dateString = [NSString stringWithFormat:@"%@,%@",[components objectAtIndex:0],[components objectAtIndex:1]];

它在模拟器和 ios 6.0 中运行良好,但在设备 (iPad) 中的 ios 5.1 中未按预期显示。

最佳答案

NSDate -descriptionWithLocale记录为采用 NSLocale;您正在传递一个 NSString,因此依赖于未记录的行为。

还不清楚您试图通过拆分成组件来实现什么——大概您已经假设 NSDateFormatterShortStyle 中始终有一个逗号?文档也不能保证这一点。

您可能想要做的只是设置一个自定义日期格式字符串。从您的帖子标题来看,您可能想要 EEEE, MMMM dd。所以例如

// see QA1480 re: en_US_POSIX
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:usLocale];
[dateFormatter setDateFormat:@"EEEE, MMMM dd"];
dateString = [dateFormatter stringFromDate:[self date]];

QA1480解决了一个问题,该问题可能导致 NSDateFormatter 静默地在内部调整您的日期格式化程序。

关于ios - 日期格式如 "Monday, December 10"在 ios 5.1 中错误显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14702192/

相关文章:

IOS - 如果用户点击随机元素而不是背景,如何隐藏键盘?

ios5 - 从 IOS 5 应用程序与 Redis (Redis To Go) 对话

javascript - 如何使用 Jquery/Javascript 在 IOS 中禁用或隐藏 native 播放器?

ios - 在 swift iOS 9 中以编程方式将行添加到静态 TableView

ios - Annotation Map View 中的引脚颜色没有改变

ios - 使用 CSS 模糊在 iPad 上滚动

iPhone:(BOOL)isPad 方法描述了什么?

ios - 无需 Apple 部署过程即可分发 iPad 应用程序

ios - UICollectionView 滚动非常不稳定

iphone - UITabBarItem appearance -setTitleTextAttributes 不断记录 "state = 1 is interpreted as UIControlStateHighlighted"?