NSTimeZone: каково различие между localTimeZone и systemTimeZone?

В C++ можно показать двоичное представление это таким образом:

template <class T>
std::bitset<sizeof(T)*8> binary_representation(const T& f)
{
   typedef unsigned long TempType;
   assert(sizeof(T)<=sizeof(TempType));
   return std::bitset<sizeof(T)*8>(*(reinterpret_cast<const TempType*>(&f)));
}

предел здесь должен то, что bitset, более длинный параметр является неподписанным длинным, таким образом, это обрабатывает для плавания, можно использовать что-то еще, чем bitset и расширение, которые утверждают.

BTW, cletus предложение перестал работать в том смысле, что Вам нужно "unsingned долго долго" для покрытия двойного, так или иначе Вам нужно что-то, что показывает двоичный файл (1 или 0) представление.

40
задан Jacob 6 October 2009 в 21:34
поделиться

2 ответа

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

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

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

52
ответ дан 27 November 2019 в 01:36
поделиться

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

  • localTimeZone - часовой пояс по умолчанию для текущего приложения. Это может быть установлено пользователем или программно в приложении (или, возможно, другими способами). По сути, это указатель на defaultTimeZone с уровнем косвенности; при изменении часового пояса по умолчанию localTimeZone также изменится .
  • systemTimeZone , с другой стороны, является часовым поясом, используемым базовой системой. Кэшированное значение для этого не изменится , если часовой пояс системы изменится во время выполнения приложения, в отличие от localTimeZone .
23
ответ дан 27 November 2019 в 01:36
поделиться