Unix 時間の取得

(サンプル一覧を表示する)

FlashDevelop を使って、Unix 時間の取得テストをしてみました。

このサンプルは、trace() を使ってデバッグウインドウに
内容を表示しているので Flash の実行画面はありません。

ソースコード

package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	
	/**
	 * Unix 時間の取得サンプル
	 * @author Hikipuro
	 */
	public class Main extends Sprite 
	{
		/**
		 * コンストラクタ
		 */
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
		
		/**
		 * 初期化イベント
		 * @param	e
		 */
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
			
			var now:Date = new Date();
			var unixtime:uint = getUnixtime(now);
			var date:Date = unixtimeToDate(unixtime);
			
			trace(unixtime);
			trace(date.toString());
			trace(now.toString());
		}
		
		/**
		 * Date クラスを Unix 時間に変換
		 * @param	date
		 * @return
		 */
		private function getUnixtime(date:Date):uint
		{
			return Math.floor(date.time / 1000);
		}
		
		/**
		 * Unix 時間から Date クラスを作成
		 * @param	unixtime
		 * @return
		 */
		private function unixtimeToDate(unixtime:uint):Date
		{
			var date:Date = new Date();
			date.setTime(unixtime * 1000);
			return date;
		}
		
	}
	
}		

出力結果

1228517384
Sat Dec 6 07:49:44 GMT+0900 2008
Sat Dec 6 07:49:44 GMT+0900 2008

Date クラスの time プロパティを見ると、そのまま Unix 時間に近いものが取得できますが、
これは、ミリ秒単位の精度で記録されているため、Unix 時間に変更するためには
1000 で割って、秒単位にする必要があります。

外部リンク