2013-04-29 219 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