如何在Flex(AS3)中解析ISO格式的日期?

时间:2009-03-27 20:25:41

标签: flex actionscript-3 datetime parsing

如何在Flex(AS3)中将ISO日期字符串解析为日期对象?

e.g。
2009-12-08T04:23:23Z
2009-12-08T04:23:23.342-04:00
等...

3 个答案:

答案 0 :(得分:17)

import com.adobe.utils.DateUtil;

var dateString:String = "2009-03-27T16:28:22.540-04:00";
var d:Date = DateUtil.parseW3CDTF(dateString);
trace(d);
var s:String = DateUtil.toW3CDTF(d);
trace(s);
[trace] Fri Mar 27 16:28:22 GMT-0400 2009
[trace] 2009-03-27T20:28:22-00:00

结果DateUtil处理W3C Date and Time规范中的所有内容。 AS3日期不会保持毫秒数,但如果可用,它们将被删除。

请注意,W3C输出转换为UTC(也称为GMT或Zulu时间)。

答案 1 :(得分:1)

将ISO转换为日期格式的示例函数

    public function isoToDate(value:String):Date 
    {
        var dateStr:String = value;
        dateStr = dateStr.replace(/\-/g, "/");
        dateStr = dateStr.replace("T", " ");
        dateStr = dateStr.replace("Z", " GMT-0000");

        return new Date(Date.parse(dateStr));
    }

答案 2 :(得分:0)

以下是一项实施:http://blog.flexexamples.com/2008/02/02/parsing-iso-dates-with-flex-and-actionscript/

(对不起,如果没有显示链接按钮,我自己也懒得去。)