Chadwick
Chadwick

Reputation: 12663

How to parse an ISO formatted date in Flex (AS3)?

How can I parse an ISO date string into a date object in Flex (AS3)?

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

Upvotes: 9

Views: 7923

Answers (3)

ShelS
ShelS

Reputation: 187

Example function to convert ISO into Date format

    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));
    }

Upvotes: 1

Chadwick
Chadwick

Reputation: 12663

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

Turns out DateUtil handles everything in the W3C Date and Time spec. AS3 Dates do not maintain milliseconds, but they'll just be dropped if available.

Note that the W3C output is converted to UTC (aka GMT, or Zulu time).

Upvotes: 18

dirkgently
dirkgently

Reputation: 111120

Here is an implementation: http://blog.flexexamples.com/2008/02/02/parsing-iso-dates-with-flex-and-actionscript/

(Sorry ff just isn't showing the linking button and I am too lazy to do it myself.)

Upvotes: 0

Related Questions