2013-04-29 105 views
0

在我的Windows Store應用程序,我展示日期爲格式(星期日,2013年3月9日)使用"{0:D}"顯示日期語言

我認爲Windows默認語言是英語(英國)。在我的應用程序中,我想顯示多種語言。如果我更改語言,假設我更改爲英文(美國)日期顯示爲(2013年3月9日星期日星期日)。

loadedDate = DateTime.ParseExact(data.issues[four].date.ToString(), "yyyyMMdd", null); 
var date = loadedDate.DayOfWeek + " " + String.Format("{0:D}", loadedDate); 

txt4.Text = date; 

如果我試圖改變它在相同的方式顯示任何語言: 任何幫助這將是有益的。

+1

你是怎麼改變語言的? – 2013-04-29 06:08:36

+0

我正在使用控制面板更改系統語言 - 添加語言。 – Kumar 2013-04-29 06:12:45

+0

只是*添加*一種語言不會切換它 - 你是否也把新的語言放在列表的頂部? – 2013-04-29 06:15:20

回答

0

您可以找到指引「測試應用程序的其他語言」 MSDN Quickstart: Translating UI resources (Windows Store apps using C#/VB/C++ and XAML)頁:

  1. 打開控制面板,然後選擇時鐘,語言和區域> 語言。
  2. 請注意,運行 應用時顯示的語言是列出的最高語言,即英語,德語或法語。如果您的頂尖語言不是這三種語言中的一種,則該應用程序將退回 到應用程序支持的列表中的下一個語言。
  3. 如果您的機器上沒有這三種語言,請通過單擊添加語言並將其添加到列表中來添加缺少的 。
  4. 要用另一種語言測試應用程序,請選擇列表中的語言,然後單擊上移,直到它位於頂部。然後運行該應用程序。

而據我所知這正是你想要做的。在你的例子中,你使用的是屬性DateTime.DayOfWeek,這不是本地化,因爲它只是一個簡單的枚舉,所以當你看到星期天時,你實際上看到的值是DayOfWeek enumeration。要獲得一週的本地化一天,你可以有不同的方式找到周的本地化一天,他們中的一個:

CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(loadedDate.DayOfWeek) 

您也可以使用DateTimeFormatter如果你需要格式化日期時間的更先進的方式。

+0

謝謝你的回答。 但是問題在於我使用默認語言獲得DayofWeek的價值。如果我將語言更改爲任何其他語言,它將同時顯示Dayof周名稱「Sunday(默認語言DayofWeek)Freitag(德語DayofWeek),2013年4月26日」 我希望你能理解我的問題。 – Kumar 2013-04-29 12:28:41

+0

看一下[標準日期和時間格式字符串](http://msdn.microsoft.com/en-US/library/az4se3k1.aspx)。格式'D'在不同的語言中是不同的。在某些語言中,它包括星期幾,有些則不包含。 – outcoldman 2013-04-29 14:46:59