NSTimeZone: в чем разница между localTimeZone и systemTimeZone?

В classе NSTimeZone есть как + localTimeZone, так и systemTimeZone. Я сделал тест на симуляторе iphone, оба возвращают объект NSTimeZone, указывающий тот же часовой пояс. В чем разница? Какой из них я должен использовать, чтобы узнать настройки часового пояса iPhone? благодаря

Мой тест:

NSLog(@"Local Time Zone %@",[[NSTimeZone localTimeZone] name]); NSLog(@"System Time Zone %@",[[NSTimeZone systemTimeZone] name]); 

Пользователь (или ваше приложение или другое приложение) может изменить любой часовой пояс по умолчанию для приложения (используя +[NSTimeZone setDefaultTimeZone] ) или системный часовой пояс (используя Системные настройки) в любое время. +[NSTimeZone localTimeZone] возвращает прокси-сервер, который всегда будет действовать так, как если бы он был текущим часовым поясом по умолчанию для приложения, даже если это значение по умолчанию изменяется. Вы можете изменить часовой пояс по умолчанию для приложения, чтобы заставить его вести себя так, как если бы он находился в другом часовом поясе.

+[NSTimeZone systemTimeZone] возвращает текущий системный часовой пояс (в соответствии с настройками системы). В большинстве случаев они будут одинаковыми (по умолчанию, по умолчанию используется часовой пояс приложения по умолчанию для часового пояса при запуске приложения).

Если вы хотите узнать настройки часового пояса системы, вы, вероятно, захотите использовать +[NSTimeZone systemTimeZone] . Если вы просто хотите, чтобы правильный часовой пояс для вашего приложения работал, вы, вероятно, хотите +[NSTimeZone localTimeZone] .

Документы представляют собой полезную информацию для такого рода вещей. В этом случае они говорят:

  • localTimeZone – это часовой пояс по умолчанию для текущего приложения. Это может быть задано пользователем или программно в приложении (или, возможно, другими способами). Это в основном указатель на defaultTimeZone с уровнем косвенности; если изменяется часовой пояс по умолчанию, изменится и localTimeZone .
  • systemTimeZone , с другой стороны, является часовым поясом, используемым базовой системой. Значение кэширования для этого не изменится, если системный часовой пояс изменяется во время выполнения приложения, в отличие от localTimeZone .
Interesting Posts
Давайте будем гением компьютера.