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]