【Flex】ActionScript中String转Data

来源:互联网 发布:白银现货软件 编辑:程序博客网 时间:2024/06/05 08:56

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 类型

原创粉丝点击