2015-01-13 60 views
0

在我的應用程序中,我希望語言設置爲法語,日期格式也是如此。 但我想閱讀帶小數點的數字格式(英文格式和非法語(法語格式帶逗號))heterogeneous CultureInfo

這可能嗎? 我想像這樣:

public App() 
    { 
     System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CreateSpecificCulture("fr-FR"); 
     System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("???"); 

任何想法?

回答

2

你可以只改變decimal分離培養:

var culture = CultureInfo.CreateSpecificCulture("fr-FR"); 
culture.NumberFormat.CurrencyDecimalSeparator = "."; 
+0

您的解決方案接近。 CurrencyDecimalSeparator似乎只適用於貨幣數量(「貨幣」)。最後'文化.NumberFormat.NumberDecimalSeparator =「。」;'工作得很好!謝謝 – olivier

0

你可以使用這樣的:

CultureInfo CustomCulture = new CultureInfo("fr-FR"); 
CustomCulture.DateTimeFormat = new CultureInfo("en-US").DateTimeFormat; // Change DateTimeFormat to make date always in en-US Culture 
Thread.CurrentThread.CurrentCulture = CustomCulture; 
Thread.CurrentThread.CurrentUICulture = CustomCulture; 

////Date Formats 
Thread.CurrentThread.CurrentCulture.DateTimeFormat.FullDateTimePattern = "dd MMMM yyyy Hh:mm:ss"; 
Thread.CurrentThread.CurrentCulture.DateTimeFormat.LongDatePattern = "dd MMMM yyyy"; 
Thread.CurrentThread.CurrentCulture.DateTimeFormat.LongTimePattern = "HH:mm:ss"; 
Thread.CurrentThread.CurrentCulture.DateTimeFormat.MonthDayPattern = "d MMMM"; 
Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = "dd-MM-yyyy"; 
+0

我實際上是在尋找相反的東西(數字是「en-US」,日期保存在「fr-FR」中)。 Selman22的解決方案讓我走向了正確的道路。無論如何,您的代碼對於設置默認日期時間格式也很有趣。謝謝 – olivier