【Flex】ActionScript中String转Data

AS3中Date类有多种构造函数,其中也包括字符串。可采用如下格式:

 

   var d:Date = new Date(”Sun Jun 1 10:15:18 UTC-0100 2008″)
        但其支持的格式有一定的限制,包括如下几种:
   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, 时区值)就是UTC-HHMM的样式。更多参考:here

        但对于中文用户,要把熟悉“xxxx-xx-xx”或“xxxx年xx月xx日”格式的字符串转成Date类,无法用字符串直接构造Date类。还需其他方法。
  Date类提供了静态方法parse来序列化字符串,格式如下Date.parse(str:String):Number,但此方法序列化字符串后得到的Number无法构造正确的日期。所以对于“xxxx-xx-xx”或“xxxx年xx月xx日”格式的字符串需先解析,分别得到年、月、日的具体数字,再用Date(year,month,date)构造日期。具体如下:
     //xxxx-xx-xx格式
     var arr:Array = string.split("-");
     var year:Number = Number(arr[0]);
     //flex里月份从0开始,故解析到的month需减1
     var month:Number = Number(arr[1]) - 1;
     var day:Number = Number(arr[2]);
     var date:Date = new Date(year,month,day);
     //“xxxx年xx月xx日”格式,需解析年、月、日位置
     //简单的可默认年4个数字、月2个数字、日2个数字
  另:flex里字符串转int,Number可直接用intin(str),Number(str)。

  同时,Date类的toDateString()和.toLocaleDateString()都无法格式化到上述两种格式的字符串,不知是否需本地语言包,但貌似locale文件夹下只有一个en_ES,可能需另外下载。Date类要格式化成上述两中格式,需借助DateFormatter类。具体如下:
    var df:DateFormatter = new DateFormatter();
    df.formatString="YYYY-MM-DD";
    var str:String=df.format(date);//date为Date类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值