日期转换需要注意的事项,解析日期格式的字符串

开发和数据库有关的项目中,我们比较习惯年月日的方式来存储日期,比如:2005-12-22
但是,在Flash里,不能直接使用这样的字符串去构造一个Date实例,下面的内容摘取自Flex 3开发文档:

支持的格式:
   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
TZD:Time Zone Designation (TZD) 的形式始终为 GMT-HHMMUTC-HHMM,这表明小时和分钟偏移相对于格林尼治平均时(GMT,现也称通用时间 (UTC))。年月日之间可用正斜杠 (/) 或空格隔开,一定不要用短划线 (-) 隔开。下面是受支持的其它格式(可以包括这些格式的部分表示形式,即,只包括月、日和年)

public static function parse(date:String):Number

按照 UTC 将表示日期的字符串转换为一个数字,它等于自 1970 年 1 月 1 日起已经过的毫秒数。


解决方案

在解析字符串之前,应该优先将日期格式转换成YYYY/MM/DD格式

如,使用正则表达式

("1999-2-27").replace(/(\d{4})-(\d{1,2})-(\d{1,2})/, "$1/$2/$3");

也可以通过截取字符串的方式,都是比较简单的,这里就不举例了,可以参考http://stackoverflow.com/questions/3163/actionscript-3-fastest-way-to-parse-yyyy-mm-dd-hhmmss-to-a-date-object


实例,查看源代码

原文地址:https://www.cnblogs.com/iihe602/p/1552084.html