这个奇怪的问题出现在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。 有什么想法有什么不对吗? 感谢。
PS。立即检查亚洲/马斯喀特时区(+4喜欢MSK)。一切都好,月份是11。
答案 0 :(得分:3)
[timezone secondsFromGMTForDate:date]
在iOs7返回14400,在iOs8返回指定日期的10800。它应该反映俄罗斯政府http://www.timeanddate.com/time/change/russia/moscow所做的改变(iOs7尚未意识到)。