这个奇怪的问题出现在 ios 8 版本中。这是示例代码:
NSDate * date = [NSDate dateWithTimeIntervalSince1970:1414785600];
dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"ru_RU"]];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"Europe/Moscow"]];
[dateFormatter setDateStyle:NSDateFormatterFullStyle];
[dateFormatter setDateFormat:@"MM"];
NSString * month = [dateFormatter stringFromDate: date];
日期是 2014-11-01 00:00:00 MSK
(或 2014-10-31 20:00:00 +0000
)
运行 ios 7,月份值为 11。但在 ios 8 上为 10。 任何想法出了什么问题? 谢谢。
附言。立即检查 Asia/Muscat 时区(+4,如 MSK)。一切正常,月份是 11。
最佳答案
[timezone secondsFromGMTForDate:date]
在给定日期的 iOs7 返回 14400,在 iOs8 返回 10800。它应该反射(reflect)俄罗斯政府(再次)所做的更改http://www.timeanddate.com/time/change/russia/moscow iOs7 还不知道。
关于iOS 8 欧洲/莫斯科时区问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25997774/