iOS 6 NSDateFormatter stringFromDate:星期几

时间:2013-11-20 12:15:35

标签: iphone objective-c ios6 nsdateformatter dayofweek

我遇到了在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以该格式指定星期几的全名。

我错过了什么吗?

2 个答案:

答案 0 :(得分:5)

实际上,这似乎是iOS 6上NSDateFormatter中的一个错误。但是,似乎是这样 只有在明确设置

时才会出现错误
[formatter setDoesRelativeDateFormatting:NO];

如果省略该行(并且NO仍然是默认值),那么结果是正常的(至少在我测试时)。

备注:我认为setDoesRelativeDateFormatting仅用于连接 与setDateStyle:,但这是纯粹的猜测。

答案 1 :(得分:2)

如果删除[formatter setDoesRelativeDateFormatting:NO];从您的代码中,您将获得iOS 6.0和iOS 7.0中的结果