如何在 UWP 中的整个应用程序中设置日期时间格式

本文关键字:设置 应用程序 日期 格式 时间 UWP | 更新日期: 2023-09-27 17:56:02

我能够通过以下方式获取当前区域性的日期时间格式

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

但我想将日期时间格式,特别是日期格式设置为 MM/dd/yy。我怎样才能在整个应用程序中实现这一点。

如何在 UWP 中的整个应用程序中设置日期时间格式

但我想将日期时间格式,特别是日期格式设置为 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.有关格式模板详细信息,您可以参考本文档的格式模式字段

我怎样才能在整个应用程序中实现这一点。

您可以通过将其保存到如下所示的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控件,您可以手动设置日格式,月格式和年格式,如下所示:

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

对于日历日期选择器,您可以手动设置日期格式属性,如下所示:

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