[英]CultureInfo.CurrentCulture does not contain the correct value --> numberformat problems
我需要在wpf mvvm應用程序中將雙打寫入csv文件。 這些雙打最初是在不變文化中設置的字符串。 我像這樣從服務器端應用程序接收它們,並使用
bool result = double.TryParse(row[0], NumberStyles.Any, CultureInfo.InvariantCulture, out value);
但是,當我嘗試將它們寫入csv文件(使用"" + value
, value.ToString()
, value.ToString(CultureInfo.CurrentCulture)
或value.ToString(System.Globalization.CultureInfo.CurrentCulture)
)時,當前文化似乎是EN-US,而應該是NL(荷蘭語)。 我的瀏覽器設置,Windows設置,鍵盤設置...都設置為荷蘭語,因此當我檢查區域號設置時,它包含小數點分隔符“,”,但是我的應用程序用“。”分隔小數點。 因為文化是EN-US。
因此,當我編寫csv文件並在excel中打開它時,它包含用“。”分隔的十進制值。 代替 ”,”。 這樣,我的excel不會將這些值視為十進制值,因為它們不在excel數字區域性/我的Windows設置區域性中。
有人知道發生了什么嗎?
編輯
只是要清楚。 我不是在尋找一種對文化進行硬編碼的方法。 我特別需要在Excel中使用的Windows中設置的區域性。
作為進一步參考,這里是問題所在:
我們有一個非常大的應用程序,可以覆蓋日期時間顯示等區域性。一旦將當前線程區域性設置為新區域性,就無法再訪問原始區域性。
為了能夠訪問Windows區域性,我創建了一個屬性,該屬性可以在將當前區域性更改為應用程序的用戶設置之前記住當前區域性,並使用該區域性將我的數據導出到csv文件。
您是否覆蓋了base.InitializeCulture() ;
下面的示例代碼僅用於理解..也許您有所了解
if (Session["CurrentUI"] != null)
{
String selectedLanguage = (string)Session["CurrentUI"];
UICulture = selectedLanguage;
Culture = selectedLanguage;
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture(selectedLanguage);
Thread.CurrentThread.CurrentUICulture = new
CultureInfo(selectedLanguage);
}
base.InitializeCulture();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.