NO方案:
var dateStr:String = "2013-8-7 9:30:15";
var date:Date = new Date();
date.time = Date.parse(dateStr);//NO
trace(date.toString());
为啥NO:
就如上代码,Date.pare的转成失败,因为parse时,对字符串格式有要求
文档上列出的几种格式:
MM/DD/YYYY HH:MM:SS TZD
HH:MM:SS TZD Day Mon/DD/YYYY
Mon DD YYYY HH:MM:SS TZD
Day Mon DD HH:MM:SS TZD YYYY
Day DD Mon HH:MM:SS TZD YYYY
Mon/DD/YYYY HH:MM:SS TZD
YYYY/MM/DD HH:MM:SS TZD
所以很明显,NO方案中的:
var dateStr:String = "2013-8-7 9:30:15";
是不符合格式要求的
YES方案:
var dateStr:String = "2013-8-7 9:30:15";
var date:Date = new Date();
date.time = Date.parse(convertDateStr(dateStr));//YES, to use convertDateStr method
//trace : Wed Aug 7 09:30:15 GMT+0800 2013
trace(date.toString());
convertDateStr()方法:
/**
* dateStr格式必须为:yyyy-mm-dd HH:MM:SS,如:2013-8-7 9:30:15;
* <listing>
* <font size='2'>
* //e.g:
* var dateStr:String = "2013-8-7 9:30:15";
* var date:Date = new Date();
* date.time = Date.parse(convertDateStr(dateStr));
* //trace : Wed Aug 7 09:30:15 GMT+0800 2013
* trace(date.toString());
* </font>
* </listing>
* @author jave.lin
* @date 2013-8-7
* */
public static function convertDateStr(dateStr:String):String{
var strArr:Array = dateStr.split(" ");
var fStr:String = "{0} {1} {2}";
return format(fStr, (strArr[0] as String).split("-").join("/"), strArr[1], "GMT");
}
/**以前的format文章中的方法*/
public static function format(str:String, ...args):String{
for(var i:int = 0; i<args.length; i++){
str = str.replace(new RegExp("\\{" + i + "\\}", "gm"), args[i]);
}
return str;
}