2013-06-05 149 views
0

您好似乎有很多將美國格式化日期(MM/DD/YYYY)轉換爲英國日期(DD/MM/YYYY),但我試圖做相反的事情:我從服務器接收一個英國日期(DD-MM-YYYY)的負載,我試圖格式化爲DD-MMM-YYYY(例如:2013年1月11日),但Flex認爲它試圖將美國天,所以當它獲得17-02-2013,它返回一個空字符串,因爲沒有17個月。 我如何告訴它我給它的英國日期,而不是美國的日期? 在此先感謝。將英國日期轉換爲美國日期的靈活性

+0

你收到的日期作爲'字符串'或'日期'值類型? –

+0

字符串。對不起,這確實是有用的信息! – digitalfishpond

回答

0

簡短的回答,你不能。

較長的答案,沒有足夠的信息來確定日期格式。如您所見,在某些情況下,您可以確定日期對於預期格式無效(17-02-2013 - 由於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'); 
+0

謝謝,這工作:)當我被允許時會投票。 – digitalfishpond

0

OK,傳開它與這個醜陋的黑客攻擊結束:結束了該字符串轉換成一個數組,並重新整理它,以便在對結果使用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)) } "/> 
相關問題