我遇到了在iOS 6 NSDate对象中获取星期几的全名的问题(在iOS 7中工作正常)。 我已经搜索了stackoverflow以寻找类似的问题,但我找不到我想要的东西。
我的测试用例是:
formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"EEEE"];
[formatter setDoesRelativeDateFormatting:NO];
NSDate *testDate = [NSDate dateWithTimeIntervalSince1970:1384551041.389218];
NSLog(@"%@",[formatter stringFromDate:testDate]);
预期输出为Friday
(本地化为您的设备区域格式和格里高利历),它适用于iOS 7,但在iOS 6上,它返回空描述。我已经在实际设备中测试了相同的区域格式集。
据我所知,iOS 6根据tr35-25使用this documentation格式,EEEE
以该格式指定星期几的全名。
我错过了什么吗?
答案 0 :(得分:5)
实际上,这似乎是iOS 6上NSDateFormatter
中的一个错误。但是,似乎是这样
只有在明确设置
[formatter setDoesRelativeDateFormatting:NO];
如果省略该行(并且NO
仍然是默认值),那么结果是正常的(至少在我测试时)。
备注:我认为setDoesRelativeDateFormatting
仅用于连接
与setDateStyle:
,但这是纯粹的猜测。
答案 1 :(得分:2)
如果删除[formatter setDoesRelativeDateFormatting:NO];从您的代码中,您将获得iOS 6.0和iOS 7.0中的结果