NSDate, как получить долю текущего дня в секунду для текущего часового пояса. - PullRequest
0 голосов
/ 15 октября 2011

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

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

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

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

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

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

((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 Ответ

1 голос
/ 16 октября 2011
NSInteger secondsFromGMT = [[NSTimeZone localTimeZone] secondsFromGMT];
...