2014-03-19 37 views
-1

使用Windows窗體應用程序如何獲取OS區域和語言日期格式。如何在winforms應用程序中獲取日期格式名稱

我想在下圖中以粗體顯示字符串標記。

enter image description here

+0

能告訴我爲什麼下投票的原因是什麼? –

+2

我還沒有登頂,但是,可能原因是你的問題很廣泛,有很多可能的答案。例如你想獲得CultureInfo的對象嗎?想要獲取日期格式嗎?根據你的問題標題,或者你想獲得地區語言的名稱?根據你繪製的矩形。如果您的實際問題是想要在矩形中標記字符串,請更新您的問題標題。 – 2014-03-19 08:30:10

回答

0
using System.Globalization; 

CultureInfo culture = CultureInfo.CurrentUICulture; // get the culture of the OS 
string cultureName = culture.DisplayName; // get its full name 

這給了你這是安裝了OS的文化。似乎還有一些CultureInfo的其他靜態屬性,如DefaultThreadCurrentCultureDefaultThreadCurrentUICulture,這可能會給你你想要的。

查看文檔CultureInfohttp://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo%28v=vs.110%29.aspx

+0

在我的情況下,上面的代碼導致英文(英國),即使我的日期格式是泰文(泰國)。 –

+0

對不起,將'CurrentCulture'修正爲'InstalledUICulture' – jwg

+0

在這種情況下,結果是英語(美國)。不是泰國(泰國)請確保我只更改了日期格式未安裝的文化。 –

1

試試這個

System.Threading.Thread.CurrentThread.CurrentCulture.EnglishName 

    or 

    System.Threading.Thread.CurrentThread.CurrentCulture.DisplayName 


    result of above code is "Thai (Thailand)" 
0

這給你的線程使用的區域性的名稱。

Console.WriteLine(Thread.CurrentThread.CurrentCulture.Name); 
+0

但我想日期格式名稱不是當前文化名稱 –

0

這已經被回答:Previous answer

試試這個,它會解決你的問題:

class Region 
{ 
    public class Stateinfo 
    { 
     public CultureInfo Result { get; set; } 
    } 

    static void Main(string[] args) 
    { 
     Thread.CurrentThread.CurrentCulture.ClearCachedData(); 
     var thread = new Thread(
      s => ((Stateinfo)s).Result = Thread.CurrentThread.CurrentCulture); 
     var stateinfo= new Stateinfo(); 
     thread.Start(stateinfo); 
     thread.Join(); 
     var culture = stateinfo.Result; 

    } 
} 
相關問題