AS3 将字符串转成Date 时间对象


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;
		}



你可能感兴趣的:(AS3 将字符串转成Date 时间对象)