我找到了一些有用的问题,但他们没有帮助我。我正在开发Windows Phone 8应用程序,如果文化是土耳其语,我想在TextBlock(DateTime binded)上只显示dd.MM。如果文化是显示MM.dd
Text="{Binding MyProperty.CreateDate, StringFormat=\{0:dd.MM\}}"
以上代码在土耳其文化中运行正确。但在英语中它毫无意义。实际上问题不在于英语或土耳其语。我只想在当前文化中显示日和月。
答案 0 :(得分:1)
如果要指定自己的格式,可以在本地化资源文件中创建不同的格式字符串并绑定到StringFormat
Text="{Binding MyProperty.CreateDate, StringFormat={StaticResource shorDateFormatString}}"
或者,在代码隐藏中设置日期文本,使用一些自定义逻辑来查看月份或日期是否在本地约定中排在第一位
string shortDatePattern = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern
if(shortDatePattern.indexOf("dd") < shortDatePattern.indexOf("MM"))
dateLabel.Text = MyProperty.CreateDate.toString("dd.MM")
else
dateLabel.Text = MyProperty.CreateDate.toString("dd.MM")
中所述