Apache flex Flex中的时间解析

Apache flex Flex中的时间解析,apache-flex,parsing,time,date,Apache Flex,Parsing,Time,Date,有没有办法使用标准库将格式为HH:MM的字符串解析为日期(或其他)对象 我知道我可以使用 var date:Date = new Date(Date.parse("9/17/2008 10:30"); 但我只想自己解析10:30。以下代码将不起作用 var date:Date = new Date(Date.parse("10:30"); 我知道我可以使用一个定制的正则表达式来很容易地完成这项工作,但似乎使用现有的Flex API就可以做到这一点。您是否考虑过在时间字符串前加上“01/01/

有没有办法使用标准库将格式为HH:MM的字符串解析为日期(或其他)对象

我知道我可以使用

var date:Date = new Date(Date.parse("9/17/2008 10:30");
但我只想自己解析10:30。以下代码将不起作用

var date:Date = new Date(Date.parse("10:30");

我知道我可以使用一个定制的正则表达式来很容易地完成这项工作,但似乎使用现有的Flex API就可以做到这一点。

您是否考虑过在时间字符串前加上“01/01/2000”,然后再应用日期

或者,可能会有一个标记器,它将接收输入并在下面的位置将其拆分:为您提供一个可以转换为整数的字符串数组。标记器也不难编写,如果flex中没有标记器,那么它可能会很有趣


-Adam

如果必须使用指定的确切格式,则需要自己解析它

下面是一个简单的示例(未测试):


如果时间不是用24小时表示的,那么就无法检查AM或PM(代码将假定为AM)。

回答您的具体问题:不,没有库函数来完成您想做的事情,但是没有库函数来解析ISO格式、德文格式、瑞典格式的日期,以罗马数字等表示年份的日期


为什么不使用正则表达式呢?这就是它们的用途。

作为一个简单而免费的解决方案,您可以使用DateField的一些静态方法:

  • stringToDate(valueString:String,inputFormat:String):日期
  • DateField.dateToString(值:Date,outputFattern:String):String
但不幸的是,它们不支持小时/分钟/秒(仅支持日期)


在您的特定情况下:Date对象始终还包含“Date”信息。。如果这不重要,您能在解析之前简单地连接一个标准日期字符串吗?

这段代码不是必需的。我给出的原始示例(粘贴在下面)效果很好。var date:date=new date(date.parse(“9/17/2008 10:30”);日期构造函数的参数中有一个小的输入错误。请将dateElements[1]后面的句点更改为逗号(即dateElements[1]。->dateElements[1],)再一次提醒我…还有一个更重要的问题。Flex需要一个以0为基础的月份,所以你需要从传递给日期构造函数的月份中减去一个。你让他问这个问题显得很愚蠢…这是不恰当的。大多数语言至少有一些用于解析日期和时间的库,所以认为Flex支持这样的函数这是非常合理的。FLEX Date对象非常可怕。他们真的想称之为“企业”价值吗?他们需要在这一领域提高自己的水平。
var str:String = "9/17/2008 10:30"

var items:Array = str.split(" ");
var dateElements:Array = items[0].split("/");
var timeElements:Array = items[1].split(":");

var n:Date = new Date(dateElements[2],
                        dateElements[0],
                        dateElements[1].
                        timeElements[0],
                        timeElements[1]);