investigating how Date.parse works in Flash10
forked from flash on 2009-12-21 (diff: 14)
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);
}
}
