您好,有很多将美国格式化日期(MM / DD / YYYY)转换为英国日期(DD / MM / YYYY),但我正在尝试相反:我收到一个负载英国日期(DD-MM-YYYY)来自我试图格式化为DD-MMM-YYYY的服务器(例如:2013年1月11日),但Flex认为它正试图转换美国时代,所以当它变为17- 02-2013,它返回一个空字符串,因为没有17个月。 我怎么说它我给它英国约会而不是美国约会? 提前谢谢。
答案 0 :(得分:0)
简短回答,你不能。
更长的答案,没有足够的信息来确定日期格式。如您所见,在某些情况下,您可以确定日期对于预期格式无效(17-02-2013 - 因为17不是有效月份,它必须是DD-MM-YYYY而不是MM-DD- YYYY),但对于不到一半的日期你不能分辨(是01-02-2013应该是1月2日还是2月1日?)
如果你知道日期应该是特定的格式,你可以使用DateField.stringToDate来解析字符串:
var value:Date = DateField.stringToDate(dateString, 'DD-MM-YYYY');
答案 1 :(得分: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 ) ) } "/>