Apache flex Flex中的时间解析
有没有办法使用标准库将格式为HH:MM的字符串解析为日期(或其他)对象 我知道我可以使用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/
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]);