From 5da085ee20ebbfbb3e11a84f945533abc547141e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 5 Jul 2026 21:08:46 +0000 Subject: [PATCH 1/2] Initial plan From 8fc5a7f20f522ffdf4afcd38bdaf9d7aa00da975 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 5 Jul 2026 21:13:52 +0000 Subject: [PATCH 2/2] Derive default date/time formats from user profile language (#109) --- src/Columns/TableViewDateColumn.cs | 12 ++++++++++++ src/Columns/TableViewTimeColumn.cs | 5 +++-- tests/TableViewTimeColumnTests.cs | 5 +++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/Columns/TableViewDateColumn.cs b/src/Columns/TableViewDateColumn.cs index 1c3db4e6..ee273fe2 100644 --- a/src/Columns/TableViewDateColumn.cs +++ b/src/Columns/TableViewDateColumn.cs @@ -2,6 +2,8 @@ using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Data; using System; +using Windows.Globalization.DateTimeFormatting; +using Windows.System.UserProfile; using WinUI.TableView.Controls; using WinUI.TableView.Extensions; using WinUI.TableView.Helpers; @@ -19,6 +21,16 @@ namespace WinUI.TableView; #endif public partial class TableViewDateColumn : TableViewBoundColumn { + /// + /// Initializes a new instance of the TableViewDateColumn class. + /// + public TableViewDateColumn() + { + var languages = GlobalizationPreferences.Languages; + var patterns = languages.Count > 0 ? new DateTimeFormatter("shortdate", languages).Patterns : null; + DateFormat = patterns?.Count > 0 ? patterns[0] : "shortdate"; + } + /// /// Generates a TextBlock element for the cell. /// diff --git a/src/Columns/TableViewTimeColumn.cs b/src/Columns/TableViewTimeColumn.cs index bf5ef184..d07a0b3d 100644 --- a/src/Columns/TableViewTimeColumn.cs +++ b/src/Columns/TableViewTimeColumn.cs @@ -2,7 +2,7 @@ using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Data; using System; -using Windows.Globalization.DateTimeFormatting; +using Windows.System.UserProfile; using WinUI.TableView.Controls; using WinUI.TableView.Extensions; using WinUI.TableView.Helpers; @@ -24,7 +24,8 @@ public partial class TableViewTimeColumn : TableViewBoundColumn /// public TableViewTimeColumn() { - ClockIdentifier = DateTimeFormatter.LongTime.Clock; + var clocks = GlobalizationPreferences.Clocks; + ClockIdentifier = clocks.Count > 0 ? clocks[0] : "24HourClock"; } /// diff --git a/tests/TableViewTimeColumnTests.cs b/tests/TableViewTimeColumnTests.cs index 1a6f4798..70b26e7e 100644 --- a/tests/TableViewTimeColumnTests.cs +++ b/tests/TableViewTimeColumnTests.cs @@ -4,7 +4,7 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.VisualStudio.TestTools.UnitTesting.AppContainer; using System; -using Windows.Globalization.DateTimeFormatting; +using Windows.System.UserProfile; using WinUI.TableView.Controls; using WinUI.TableView.Helpers; @@ -33,7 +33,8 @@ public void TableViewTimeColumn_GeneratesEditingElementWithConfiguredProperties( Assert.AreEqual(TableViewLocalizedStrings.TimePickerPlaceholder, element.PlaceholderText); Assert.AreEqual(typeof(TimeOnly), element.SourceType); Assert.AreEqual(item.AppointmentTime, column.PrepareCellForEdit(cell, new RoutedEventArgs())); - Assert.AreEqual(DateTimeFormatter.LongTime.Clock, new TableViewTimeColumn().ClockIdentifier); + var clocks = GlobalizationPreferences.Clocks; + Assert.AreEqual(clocks.Count > 0 ? clocks[0] : "24HourClock", new TableViewTimeColumn().ClockIdentifier); } [UITestMethod]