我的字符串格式为“2008年8月20日”。我希望将其转换为2008年8月20日或2008年8月20日?我怎么能这样做?
我只想从String中删除所有这些连字符并将其转换为日期值。 dateFormatter函数仅接受格式为mm / dd / yyyy的日期值。
有人能帮帮我..
我使用了正则表达式并从字符串中删除了所有这些连字符。现在在数组中我有值,20,8月和2008年。如何在此之后转换为20/08/2008?
修改
[Bindable]public var myDate:Date;
public function init():void
{
var dateStr:String="20-Aug-2008";
var rex:RegExp = /-/;
var dateArray:Array = dateStr.split(rex);
myDate= new Date(dateArray[0],dateArray[1],dateArray[2]);
}
<mx:DateFormatter id="DateDisplay" formatString="MM/DD/YYYY"/>
<mx:TextArea id="date" text="{DateDisplay.format(myDate)}"/>
我在文本区域获得的值是:01/00 / NaN。我哪里出错?
答案 0 :(得分:1)
我没有编译器方便(所以我不能检查这个),但是不是Date构造函数期望Year,Month(从零开始),Day?所以以下内容应该有效:
myDate = new Date(dateArray[2], dateArray[0] - 1, dateArray[1]);
(当然,您可能希望事先进行一些错误检查。)
来自:http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Date.html#includeExamplesSummary
编辑:更好的链接
http://livedocs.adobe.com/flex/2/langref/Date.html#Date%28%29
http://www.darronschall.com/weblog/2006/12/actionscript-30-tip-date-constructor.cfm
编辑2:糟糕。忘了你正在处理一个月份字符串,而不是一个数字。您可以执行以下操作:
function getMonth(monthString:String):int
{
var months = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
for (var i:int=0; i<months.length; i++)
{
if months[i] == monthString)
{
return i;
}
}
// not a valid month string
return -1;
}
然后,使用getMonth查找与给定月份名称关联的数字。同样,我没有方便的编译器,所以这可能不对。此外,必须有一个更简单的方法来做到这一点......现在就想不到一个。