我在flex中从DateField获取日期输入。我有一个日期为YYYY / MM / DD格式的XML文件,即字符串格式。如何将此字符串转换为Date对象?我必须比较这两个值?
我正在从“DateField”选项中获取“Tue Feb 4 00:00:00 GMT-0800 2014”这种类型的输出。我必须使用“dateCompare()”函数(就像限制一样)。
答案 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
的时间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