如何将格式为DD / MM / YYYY的字符串转换为Flex中的日期对象

时间:2013-09-07 23:48:53

标签: flex date flash-builder

我在文本字段中输入用户的日期输入,格式为DD / MM / YYYY。 如何在Flex中将此字符串转换为日期对象。 平台:Adobe Flash Builder 4.6

3 个答案:

答案 0 :(得分:3)

从Flex SDK 4.10.0开始,您可以使用

DateFormatter.parseDateString(s, "DD/MM/YYYY");

以前版本的parseDateString不尊重格式字符串,因此它cannot parse dateString value formatted with non default en_US format

答案 1 :(得分:0)

使用DateField's stringToDate方法。 DateFormatter也有一个parseDateString函数,但出于某种原因,它被设置为受保护。

  public function convertStringToDate(s:String):Date
  {       
       return DateField.stringToDate(s, "DD/MM/YYYY");
  }

答案 2 :(得分:0)

如果您没有使用最新的Apache SDK(我知道我们不是因为第三方组件),您基本上必须编写自己的转换。

内置的DateFormatter具有静态方法parseDateString,但您无法指定字符串的格式。这有点垃圾!

如果您确实没有本地化问题,并且确定日期始终为DD / MM / YYYY格式,您可以使用以下内容:

public function stringToDate(date:String):Date {
    // Extract year, month and day from passed in date string
    var year:int = IntFromSubString(date, 6, 4);
    var month:int = IntFromSubString(date, 3, 2);
    var day:int = IntFromSubString(date, 0, 2);

    // Always remember Flex months start from 0 (Jan=0, Feb=1 etc.) so take 1 off the parsed month
    return new Date(year, month-1, day);
}

private static function IntFromSubString(date:String, start:int, length:int):int {
    return parseInt(date.substr(start, length)) as int;
}