2016-09-01 1 views
0

его действительно странно, где она существует только в iOS 9.3.5, последняя версия для iOS в августе. глубоко вникает в проблему.Проблема с часовым поясом с IOS 9.3.5

я обычно использую следующие действия, чтобы получить мою дату с часового пояса:

NSDateFormatter *ddFormatter = [[NSDateFormatter alloc] init]; 
[ddFormatter setDateFormat:@"yyyy-MM-dd HH:mm"]; 
     
NSTimeZone *timeZoneObject = [NSTimeZone timeZoneWithName:timeZoneString]; 
[ddFormatter setTimeZone:@"Africa/Cairo"]; 
NSDate *date = [ddFormatter dateFromString:dateString]; 
     
return date; 

В прошивкой 9.3.3 часовой пояс является +02: 00

В прошивкой 9.3.5 часовой пояс +03: 00

Почему в последней версии iOS неверно возвращается часовой пояс, какое исправление я могу сделать, часовой пояс является всего лишь примером здесь, и я использую его динамически?

ответ

0

что вы печатаете? Если вы печатаете дату, она всегда будет показывать +0000, потому что по умолчанию дата будет возвращена в UTC или GMT, я имею в виду не +/- любые часы.

Если вы печатаете часовой пояс непосредственно нравится,

NSTimeZone *timeZoneObject = [NSTimeZone timeZoneWithName:@"Africa/Cairo"]; 

NSLog(@"timezone : %@",timeZoneObject); 

, то он должен напечатать: Africa/Cairo (GMT+2) offset 7200.

Итак, что вы печатаете на консоли, которая дает результат, например, timezone is +02:00, вы должны сделать какую-то ошибку.

Эта строка @“Africa/Cairo” также ошибочна. он должен быть @"Africa/Cairo", ваши кавычки ошибочны и не должны компилироваться. так как вы получили выход !!!

+0

его скомпилированный и кавычки правильный, это только вопрос копирования и вставки. его составлено. –

+0

теперь ваш отредактированный вопрос в порядке. В моем xcode часовой пояс всегда показывает '(GMT + 2)' для 'Africa/Cairo' – Lion

+0

вы тестируете его на iOS 9.3.5? –