2016-07-08 32 views
0

我能够通过使用如何在UWP中的整个应用程序中设置DateTime格式?

Windows.Globalization.DateTimeFormatting.DateTimeFormatter dtf = new DateTimeFormatter("shortdate",new[] { "en-US"}, "US", CalendarIdentifiers.Gregorian, ClockIdentifiers.TwelveHour); 

获得当前文化的DateTime格式,但我想设置日期时间格式,尤其是日期格式为MM/DD/YY。 如何在整个应用程序中实现这一点。

回答

0

但我想设置日期时间格式,特别是日期格式为MM/dd/yy。

如果我理解正确。您可以更改格式模板模板,如下所示:

Windows.Globalization.DateTimeFormatting.DateTimeFormatter dateFormatter = new DateTimeFormatter("{month.integer(2)}/{day.integer(2)}/{year.abbreviated}", new[] { "en-US" }, "US", CalendarIdentifiers.Gregorian, ClockIdentifiers.TwelveHour); 

它将得到如下输出:07/08/16。对于格式模板细节,您可以参考格式模式字段this document

如何在整个应用程序中实现此目的。

您可以在全球范围通过保存它App.Resources存储此格式象下面这样:

OnLaunch方法App.Xaml.cs

protected override void OnLaunched(LaunchActivatedEventArgs e) 
{ 
    ... 
    var dateFormatter = new DateTimeFormatter("{month.integer(2)}/{day.integer(2)}/{year.abbreviated}", new[] { "en-US" }, "US", CalendarIdentifiers.Gregorian, ClockIdentifiers.TwelveHour); 
    this.Resources.Add("dateFormatter", dateFormatter); 
    ... 
} 

然后你就可以通过像下面的代码在你的应用程序的任何地方得到它:

var formater = (DateTimeFormatter)App.Current.Resources["dateFormatter"]; 
var timeStr=formater.Format(DateTime.Now); 

更新: 对于DatePicker控制,您可以手动设置DayFormat,MonthFormat和YearFormat象下面这样:

<DatePicker DayFormat="{}{day.integer(2)}" MonthFormat="{}{month.integer(2)}" YearFormat="{}{year.abbreviated(2)}"></DatePicker> 

而对于CalendarDatePicker,您可以手动设置DateFormat属性象下面这样:

<CalendarDatePicker DateFormat="{}{day.integer(2)}/{month.integer(2)}/{year.abbreviated(2)}" ></CalendarDatePicker> 
+0

如何我是否对所有DatePicker,CalendarDatePickers默认应用? – AbsoluteSith

+0

默认情况下,您无法为所有DatePickers和CalendarDatePickers设置它。您只能手动设置DatePickers的'DayFormat','MonthFormat'和'YearFormat'属性以及'CalendarDatePickers'的'DateFormat'。我会更新答案。 –

+0

有什么办法按特定顺序排列它们吗?像MM/dd/yyyy一样。造成这种情况默认情况下采用设备的格式。 – AbsoluteSith

相关问题