iOS 8欧洲/莫斯科时区问题

时间:2014-09-23 14:31:34

标签: ios nsdate ios8 nsdateformatter

这个奇怪的问题出现在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。

1 个答案:

答案 0 :(得分:3)

[timezone secondsFromGMTForDate:date]在iOs7返回14400,在iOs8返回指定日期的10800。它应该反映俄罗斯政府http://www.timeanddate.com/time/change/russia/moscow所做的改变(iOs7尚未意识到)。