如何在Flex(AS3)中将ISO日期字符串解析为日期对象?
e.g。
2009-12-08T04:23:23Z
2009-12-08T04:23:23.342-04:00
等...
答案 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/
(对不起,如果没有显示链接按钮,我自己也懒得去。)