investigating how Date.parse works in Flash10

by akisute forked from flash on 2009-12-21 (diff: 14)
♥0 | Line 80 | Modified 2010-04-08 21:24:55 | MIT License
play

ActionScript3 source code

/**
 * Copyright akisute ( http://wonderfl.net/user/akisute )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/jHmd
 */

// forked from akisute's flash on 2009-12-21
package {
	import flash.utils.*;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            inittrace(stage);
            var timeStr:String = null;
            // this one never works, see Date.parse() document
            // http://help.adobe.com/en_US/AS3LCR/Flash_10.0/Date.html#parse%28%29
            timeStr = "2010-01-13 14:33:31";
            // this one also doesn't work
            timeStr = "2010 01 13 14:33:31";
            // this one works (Japanese style)
            // if TZD like GMT+0900 or UTC+0900 is not provided, default time zone is applied
            timeStr = "2010/01/13 14:33:31";
            // Date.parse returns Number(epoch time), not a Date object itself
            var date:Date = new Date(Date.parse(timeStr));
            trace(date);
            trace(date.toDateString());
            trace(date.toLocaleDateString());
            trace(date.toLocaleString());
            trace(date.toLocaleTimeString());
            trace(date.toTimeString());
            trace(date.toUTCString());
            
            trace("====================");
            var time:int = getTimer();
            for (var i:int = 0; i< 100000; i++) {
            		date.setTime(date.getTime+1);
            }
            trace(getTimer() - time);
        }
    }
}

 /////  WONDERFL TRACE /////

 import flash.display.Sprite;
 import flash.display.Stage;
 import flash.text.TextField;
 import flash.text.TextFormat;


 function inittrace(s:Stage):void
 {
     WTrace.initTrace(s);
 }

 //global trace function
 var trace:Function;

 //wtreace class
 class WTrace
 {
         private static var FONT:String = "Fixedsys";
         private static var SIZE:Number = 12;
         private static var TextFields:Array = [];
         private static var trace_stage:Stage;
         
         public static function initTrace(stg:Stage):void
         {
             trace_stage = stg;
             trace = wtrace;
         }
         
         private static function scrollup():void
         {
             // maximum number of lines: 100
             if (TextFields.length > 100) 
             {
                 var removeme:TextField = TextFields.shift();
                 trace_stage.removeChild(removeme);
                 removeme = null;
             }
             for(var x:Number=0;x<TextFields.length;x++)
             {
                 (TextFields[x] as TextField).y -= SIZE*1.2;
             }
         }
     
         public static function wtrace(... args):void
         {
         
             var s:String="";
             var tracefield:TextField;
             
             for (var i:int;i < args.length;i++)
             {
                 // imitating flash:
                 // putting a space between the parameters
                 if (i != 0) s+=" ";
                 s+=args[i].toString();
             }
             

             tracefield= new TextField();
             tracefield.autoSize = "left";
             tracefield.text = s;
             tracefield.y = trace_stage.stageHeight - 20;

             var tf:TextFormat = new TextFormat(FONT, SIZE);
             tracefield.setTextFormat(tf);
             trace_stage.addChild(tracefield);
             scrollup();                      
             TextFields.push(tracefield);
             
         }
 }