【发布时间】:2009-06-30 07:07:43
【问题描述】:
我在输出 DateTime 值时遇到了一些问题。我计算机的当前文化设置为 de-AT(奥地利)。
以下代码
string s1 = DateTime.Now.ToString("d");
string s2 = string.Format("{0:d}", DateTime.Now);
导致 s1 和 s2 都具有正确的值“30.06.2009”。
但是当在 XAML 中使用相同的格式时
<TextBlock Text="{Binding Source={x:Static sys:DateTime.Now}, StringFormat=d}"/>
输出是“2009 年 6 月 30 日”。 XAML StringFormat 似乎忽略了当前的文化设置。这在 Vista 和 XP 上都会发生。
我不想指定自定义格式,因为输出应该按照用户的首选文化设置进行格式化。
有人遇到同样的问题吗?这是 WPF 中的错误吗?
【问题讨论】:
-
我发誓一整天,我最后一分钟发现了这个问题!
-
刚刚在 Windows Phone 7 上看到了同样的行为。来自奥地利的问候!