2014-09-23 72 views
6

這個奇怪的問題出現在ios 8發佈中。下面是示例代碼: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

您是否檢查在不同時區的值是否相同? – marceloquinta 2014-09-23 14:42:12

回答

3

[timezone secondsFromGMTForDate:date]在iOs7和10800在給定日期iOs8返回14400。它應該反映俄羅斯政府http://www.timeanddate.com/time/change/russia/moscow所做的(再次)改變,iOs7尚未意識到。

+0

所以這是一個iOS 7問題,而不是iOS 8問題? – gnasher729 2014-09-23 15:26:24

+1

我相信是這樣,通常舊的iOs版本會接收這些更改的微小更新。 – 2014-09-23 15:28:44