如何在UWP中的整个应用程序中设置DateTime格式?

时间:2016-07-08 04:48:05

标签: c# windows-runtime uwp

我可以使用

获取当前文化的DateTime格式
Windows.Globalization.DateTimeFormatting.DateTimeFormatter dtf = new DateTimeFormatter("shortdate",new[] { "en-US"}, "US", CalendarIdentifiers.Gregorian, ClockIdentifiers.TwelveHour);

但是我想设置DateTime格式,特别是日期格式为MM / dd / yy。 如何在整个应用程序中实现这一目标。

1 个答案:

答案 0 :(得分:0)

  

但我想设置DateTime格式,特别是日期格式为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>