1

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

4

3 回答 3

3

自 Flex SDK 4.10.0 起,您可以使用

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

以前的版本parseDateString不尊重格式字符串,因此它无法解析使用非默认 en_US 格式格式化的 dateString 值

于 2013-09-09T09:40:21.763 回答
0

使用DateField 的stringToDate 方法。DateFormatter 也有一个parseDateString功能,但由于某种原因它被设置为受保护。

  public function convertStringToDate(s:String):Date
  {       
       return DateField.stringToDate(s, "DD/MM/YYYY");
  }
于 2013-09-08T11:36:25.667 回答
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;
}
于 2013-10-08T14:12:40.260 回答