【问题标题】:iOS 6 NSDateFormatter stringFromDate: empty day of weekiOS 6 NSDateFormatter stringFromDate:星期几
【发布时间】:2013-11-20 12:15:35
【问题描述】:

我在获取 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 根据this documentation 使用tr35-25 格式,EEEE 以该格式指定星期几的全名。

我错过了什么吗?

【问题讨论】:

    标签: iphone objective-c ios6 nsdateformatter dayofweek


    【解决方案1】:

    这实际上看起来像 iOS 6 上 NSDateFormatter 中的一个错误。但是,似乎 仅当您明确设置时才会出现该错误

    [formatter setDoesRelativeDateFormatting:NO];
    

    如果您省略该行(无论如何NO 是默认值),那么结果是可以的(至少在我测试它时)。

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

    【讨论】:

    • 那会有什么替代方案??
    • @hussainShabbir:正如我所说,只需省略 setDoesRelativeDateFormatting 调用即可。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-31
      • 2016-10-22
      • 2015-05-13
      • 2022-08-10
      相关资源
      最近更新 更多