2016-07-08 33 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

相關問題