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