Actionscript 3 在Flex中将英国日期转换为美国日期

Actionscript 3 在Flex中将英国日期转换为美国日期,actionscript-3,apache-flex,flex4,Actionscript 3,Apache Flex,Flex4,您好,似乎有很多东西可以将美国格式的日期(MM/DD/YYYY)转换为英国日期(DD/MM/YYYY),但我正试图做相反的事情:我从服务器收到大量英国日期(DD-MM-YYYY),我正试图将其格式化为DD-MMM-YYYY(例如:2013年1月11日),但是Flex认为它试图转换美国的天数,所以当它得到17-02-2013时,它返回一个空字符串,因为没有17个月。 我如何告诉它我给它的是英国日期而不是美国日期? 提前谢谢。简短的回答,你不能 回答越长,没有足够的信息来确定日期格式。如您所见,在某

您好,似乎有很多东西可以将美国格式的日期(MM/DD/YYYY)转换为英国日期(DD/MM/YYYY),但我正试图做相反的事情:我从服务器收到大量英国日期(DD-MM-YYYY),我正试图将其格式化为DD-MMM-YYYY(例如:2013年1月11日),但是Flex认为它试图转换美国的天数,所以当它得到17-02-2013时,它返回一个空字符串,因为没有17个月。 我如何告诉它我给它的是英国日期而不是美国日期?
提前谢谢。

简短的回答,你不能

回答越长,没有足够的信息来确定日期格式。如您所见,在某些情况下,您可以确定日期对于预期格式无效(2013年2月17日-因为17不是有效月份,所以它必须是DD-MM-YYYY而不是MM-DD-YYYY),但对于不到一半的日期,您就是说不出来(2013年2月1日应该是1月2日还是2月1日?)

如果确实知道日期应采用特定格式,则可以使用DateField.stringToDate解析字符串:

var value:Date = DateField.stringToDate(dateString, 'DD-MM-YYYY');

好的,最后用这个丑陋的技巧解决了这个问题:最终将字符串转换成一个数组,并重新组织它,以便在结果上使用DateFormatter.format之前它符合美国格式。一定有更优雅的方式

<Script>

    public convertDateStringToUS( date : String ) : String
    {
       var dateArray : Array = date.split( "-" );
       var day = dateArray[0];
       var month = dateArray[1];
       var year = dateArray[2];
       date = month + "-" + day + "-" + year;
       return date
    }

</Script>

<declarations>

    <mx:DateFormatter id="dateFormatter" 
                      formatString="DD-MMM-YYYY" />

</declarations>

<s:Label id="myDateLabel"
         text =" { dateFormatter.format( convertDateStringToUS( date ) ) } "/>

公共convertDateStringToUS(日期:字符串):字符串
{
var dateArray:Array=date.split(“-”);
var day=dateArray[0];
var month=dateArray[1];
变量年份=日期数组[2];
日期=月+“-”+日+“-”+年;
返回日期
}

您是否将日期作为
字符串
日期
值类型?字符串。对不起,那确实是有用的信息!