2014-09-23 18 views
6

Sự cố lạ này xuất hiện với bản phát hành ios 8. Đây là mẫu mã:iOS 8 Vấn đề múi giờ Châu Âu/Moscow

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]; 

ngày được 2014-11-01 00:00:00 MSK (hoặc 2014-10-31 20:00:00 +0000)

Chạy ios 7, giá trị tháng là 11. Nhưng trên ios 8 nó là 10. Bất kỳ ý tưởng gì sai? Cảm ơn.

PS. Kiểm tra múi giờ Châu Á/Muscat ngay bây giờ (+4 như MSK). Mọi thứ đều OK, tháng là 11.

+0

Bạn có kiểm tra xem giá trị có giống nhau ở các múi giờ khác nhau không? – marceloquinta

Trả lời

3

[timezone secondsFromGMTForDate:date] trả về 14400 tại iOs7 và 10800 tại iOs8 cho ngày cụ thể. Nó sẽ phản ánh những thay đổi được thực hiện (một lần nữa) bởi chính phủ Nga http://www.timeanddate.com/time/change/russia/moscow mà iOs7 chưa biết.

+0

Vì vậy, đó là sự cố iOS 7 chứ không phải vấn đề iOS 8? – gnasher729

+1

Tôi tin như vậy, thường là các phiên bản iO cũ nhận được các cập nhật nhỏ cho những thay đổi đó. –

Các vấn đề liên quan