2017-07-16 131 views
0

我想支持歐洲格式文化的英語。CultureInfo。數量和日期歐洲格式,英語語言支持?

日期應使用歐洲格式以英文顯示。因此,「14:00星期日,2017年7月16日」應該顯示,而不是英國的方式......其實愛爾蘭文化對此可以!

此外,例如當我需要顯示貨幣時,我希望它被格式化爲「1.500,00€」。現在,爲了支持英語,如果我使用英國文化,我會得到英鎊符號。如果我使用愛爾蘭文化,我會得到「€1,500.00」,這不是歐洲格式化貨幣的標準方式。

我想在我的申請目前狀態支持en-US和(如果有這樣的事情)en-EU。有任何想法嗎?我需要創建一個自定義文化嗎?任何指針?

回答

0

在我們的應用,所有DateTime對象存儲在UTC和在我們的框架轉換成一個適當的表示通過一個輔助方法:

public static string ToString(DateTime? date, string format) 
{ 
    if (date.HasValue) 
     return String.Format("{0:}"+format, date); 
    else return ""; 
} 

其中格式是從我們的存儲的語言檢索。

decimal表示貨幣的屬性也由我們的框架中的幫助器方法轉換。爲此,我們使用NumberFormatInfo

 numberFormat = new NumberFormatInfo(); 
     numberFormat.CurrencyDecimalSeparator = "."; 
     numberFormat.CurrencyGroupSeparator = ""; 
     numberFormat.NumberDecimalSeparator = "."; 
     numberFormat.NumberGroupSeparator = ""; 

然後使用創建NumberFormatInfo

price.ToString(numberFormat); 

這種方法的最大優點是,你可以創建你自己的喜好,儘管作爲什麼別人的思想邏輯並且這些方法支持自定義用戶設置。

缺點是,您需要爲您支持的每個國家/地區創建語言和格式。

+0

謝謝你的回答。儘管如此,即使我詢問用戶有關其顯示數字和貨幣的方式,但日期也存在問題...... 2017年7月20日星期四,美國時間2017年7月20日,星期四,美國時間美國時間上午7:24 ,在歐盟19:24(不是PM,AM)。有關這些的任何想法? – Panos

+0

@Panos同樣的解決方案,不同的技術。包括用於在用戶的區域設置中顯示日期的格式。它通常由3個元素組成: 1.顯示星期幾,顯示星期幾,星期幾的縮寫。 (Excel中的長期日期) 2.是否顯示上午/下午時間,數字時間或沒有時間。 3.什麼格式顯示日期(2017/07/13,2017/13/07或2017年7月13日 )將這三個字符串區域設置值合併到正確的.ToString()模板值中,然後簡單地把它傳遞給任何方法將日期轉換爲字符串。 – Chrotenise