NSDate как получить долю текущего дня в секунду для текущего часового пояса

#ios #nsdate #iphone-4 #cgaffinetransform

#iOS #nsdate #iphone-4 #cgaffinetransform

Вопрос:

Я пытаюсь получить долю дня для текущего дня, чтобы выровнять солнце по циферблату часов. Я могу рассчитать долю дня следующим образом:

 float dayFraction = (int)seconds%(86400 1)/86400.0;
  

Приведенное выше уравнение при преобразовании в радианы будет непрерывно анимировать солнце круглосуточно

Этот код вычисляет, где расположить солнце

 CGAffineTransform transformHours = [self calculateLabelRelateivePositionFromCurrentTimeWithOffsetClockwiseInDegrees:((int)[NSDate timeIntervalSinceReferenceDate])%(86400 1)/86400.0*360 ];
  

Проблема в том, что мне нужно получить долю дня для текущего часового пояса. В приведенном ниже уравнении всегда используется время GMT. Есть ли способ легко получить временную метку или текущее смещение часового пояса для применения к временной метке Было бы здорово иметь эту учетную запись и для перехода на летнее время !?

 ((int)[NSDate timeIntervalSinceReferenceDate])%(86400 1)/86400.0
  

Обновить:
Спасибо за предложение, в итоге я использовал следующий код:

 int gmtOffset =  [[NSTimeZone localTimeZone] secondsFromGMT];
int daylightOffset =  [[NSTimeZone localTimeZone] daylightSavingTimeOffset];

int daySecond = [NSDate timeIntervalSinceReferenceDate] gmtOffset daylightOffset)%
  

(86400 1)

Ответ №1:

 NSInteger secondsFromGMT = [[NSTimeZone localTimeZone] secondsFromGMT];