毎秒システムの日付/時刻をチェックし、アプリケーションに表示される日付を更新するタイマーを実行しています。
システム時刻を変更すると、アプリは次の秒を更新します。システムのタイムゾーンを変更すると、アプリは現在の分が変更されたときにのみこの変更を登録します。
問題が発生していることを示す小さなサンプル アプリがあります (自分で確認したい場合)。
私が呼び出す場所ではlocalDate:Date = new Date()
、localDate.timezoneOffset
現在の分が変更されるまで、現在のシステム timzone が反映されません。しかし、システム秒を変更すると、次のタイマーティックで更新されます
<?xml version="1.0" encoding="utf-8"?>
protected function windowedapplication1_creationCompleteHandler(event:FlexEvent):void
{
myTimer = new Timer(1000, 0);
myTimer.addEventListener(TimerEvent.TIMER, timerHandler, false, 0, true);
myTimer.start();
}
private function timerHandler( event:TimerEvent):void{
var localTime:Date = new Date();
offsetLabel.text = localTime.timezoneOffset.toString();
secondsLabel.text = localTime.seconds.toString();
}
]]>
</mx:Script>
<mx:Label id="offsetLabel" x="33" y="24" width="223" height="58" fontSize="15"/>
<mx:Label id="secondsLabel" x="33" y="90" width="223" height="58" fontSize="15"/>