Flex 4 - 如何将字符串(yyyy / mm / dd)转换为日期对象?

时间:2014-02-28 11:58:27

标签: actionscript-3 flex flex4

我在flex中从DateField获取日期输入。我有一个日期为YYYY / MM / DD格式的XML文件,即字符串格式。如何将此字符串转换为Date对象?我必须比较这两个值?

我正在从“DateField”选项中获取“Tue Feb 4 00:00:00 GMT-0800 2014”这种类型的输出。我必须使用“dateCompare()”函数(就像限制一样)。

4 个答案:

答案 0 :(得分:3)

Date.parse函数应该使用该格式,如果不起作用,可以使用Array.split来获取所需的值,

var d:Date=new Date();
var matches:Array=string.split("/");
d.setUTCFullYear(int(matches[0]), int(matches[1]) - 1, int(matches[2]))

设置使用方法setUTCHours

的时间

see documentation

d.setUTCHours(0,0,0,0)

编辑:

var string:String="2008/11/13";
            var d:Date=new Date();
            var matches:Array=string.split("/");
            d.setUTCFullYear(int(matches[0]), int(matches[1]) - 1, int(matches[2]))
            trace(d);
             d.setUTCHours(12,11,13);
            trace(d); 

答案 1 :(得分:1)

更简单的方法是使用mx.formatters.DateFormatter中的parseDateStrig静态方法

var date:Date = DateFormatter.parseDateString("2013/1/11", "YYYY/MM/DD");

答案 2 :(得分:0)

这是我用来做类似事情的功能。您可以根据自己的需要进行调整。

public static function convertSQLDate( dateString : String ) : Date
{
    if( dateString == null ) return null;

    var datePattern : RegExp = /(\d{4})-(\d+)-(\d+)( (\d+):(\d+):(\d+))?/;
    var result : Object = datePattern.exec( dateString );

    if( result[ 4 ] != null ) return new Date( result[1], result[2] - 1, result[3], result[ 5 ], result[ 6 ], result[ 7 ] );
    else return new Date( result[1], result[2] - 1, result[3] );            

}

答案 3 :(得分:0)

使用DateTimeFormatter ...获取特定格式....然后检查您的xml数据。

s:DateTimeFormatter id =“datePattern”dateTimePattern =“yyyy / MM / dd”

if(datePattern.format(dateChooser.selectedDate)==“2014/03/01”)

lblCheck.text =“检查......”;

否则

lblCheck.text =“Not Check ..”;

使用DateTimeFormatter的以下链接...

http://help.adobe.com/en_US/flex/using/WS8b1c39bd7e9fc364-70b5c6d212c98ca85e2-8000.html