Flex 4 UTC проблема формата даты и времени - PullRequest
0 голосов
/ 18 июня 2011

вот мои функции, они отлично работают, когда смещение по времени является круглым числом (1,2,3,4 ...), но когда оно равно 3,5 (3:30), 4,5 (4:30), оно не работает.Может ли кто-нибудь помочь мне с этим:

private function init_vars():void
            {
timeZoneOffset = FlexGlobals.topLevelApplication.parameters.clock_time_zone; // I load this with js
                timeZoneOffset = 5,50; // just for test
            }

            private function tick(event:TimerEvent):void 
            {                   
                var local: Date = new Date();

                var utc: Date = new Date(local.getTime() + (local.getTimezoneOffset() * 60000));

                var utcTime:Number=utc.getTime();




                var new_offset_date:Number = utcTime + ((3600000) * timeZoneOffset);
                var new_date:Date = new Date(new_offset_date);              
                currentTime = new Date(new_date);
                showTime(currentTime); // another function just to display time                                 
            } 


private function showTime(time:Date):void
            {
                seconds = time.getSeconds();
                minutes= time.getMinutes();
                hours= time.getHours();

                            //rotate
                this.secondsPointer.rotation = (seconds * 6) - 90;
                this.minutesPointer.rotation = (minutes * 6) - 90;              
                this.hoursPointer.rotation = (hours * 30) + (minutes * 0.5) - 90;
                this.secondsPointer.visible = true;
                this.minutesPointer.visible = true;
                this.hoursPointer.visible = true;                           
            }

1 Ответ

1 голос
/ 21 июня 2011

Я запустил твой код, и он работал нормально.Я только что проследил currentTime, потому что у меня не было вашей функции showTime, возможно ли, что ошибка в этой функции?

Я бы порекомендовал попробовать что-то вроде следующего, если вы можете:

date.setUTCHours(date.getUTCHours() + hoursDifference); //5
date.setUTCMinutes(date.getUTCMinutes + minutesDifference); //30

Изменение даты с использованием времени в миллисекундах в зависимости от того, как / где / когда вы фактически используете приложение, может привести к странным ошибкам в случае перехода на летнее время.И вы не хотите иметь дело с ошибкой, которая может случиться только два раза в год только в некоторых странах мира.

...