2011-06-18 44 views
0

這裏是我的函數,它們在timeoffset爲整數(1,2,3,4 ...)時工作正常,但是當時間爲3.5(3:30),4.5(4:30 )它不起作用。 有人可以幫我:Flex 4 utc日期時間格式問題

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;       
      } 
+0

該功能的用途是什麼?預期的結果是什麼?你看到了什麼? – JeffryHouser

+0

@ www.Flextras.com funcstion應根據時區偏移計算時間。例如,mumabai時區偏移量爲5.30小時,紐約爲10小時 - 例如,現在它顯示爲像時區偏移量設置爲5而不是5小時和30分鐘 – user147

+0

我不知道爲什麼您需要這樣做。日期類沒有內置的本地化功能?以UTC時間初始化和存儲所有內容,然後使用日期格式化程序顯示它。 – JeffryHouser

回答

1

我跑你的代碼,它工作正常。我只追查了currentTime因爲我沒有你的showTime函數,這個函數有可能是bug嗎?

我建議你可以試試下面的,如果你可以:

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

修改使用以毫秒爲單位的時間,日期取決於如何/在哪裏/當你真正使用的應用程序可能會產生的情況下,莫名其妙的錯誤的夏令時。而且您不想處理僅在世界某些國家/地區每年僅發生兩次的錯誤。

+0

hi @Gevorg謝謝你的回答,我用showCurrent時間函數更新了我的代碼。我會嘗試你推薦的方式,並會讓你知道,這有助於.Tnx – user147