0

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

4

2 回答 2

0

简短的回答,你不能。

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

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

var value:Date = DateField.stringToDate(dateString, 'DD-MM-YYYY');
于 2013-06-05T15:11:04.877 回答
0

好的,最后用这个丑陋的技巧解决了这个问题:最终将字符串转换为数组并重新组织它,以便在结果上使用 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 ) ) } "/>
于 2013-06-05T15:41:31.323 回答