如何使文化设置与 Blazor WebAssembly 中的 OS 设置匹配?

How to make culture setting match the OS setting in Blazor WebAssembly?

Chrome、Firefox 和 Edge 似乎都使用 OS 的设置,而不是客户端的“接受语言”设置,来确定 日期格式在控件中使用。我的问题是,我网站的其余部分使用“接受语言”设置来确定日期格式。因此,如果用户的设置在浏览器中与 OS 不一致,这似乎很常见,我可能会在页面上显示一个日期字符串,在一个地方使用 MM/dd/yyyy 格式和一个 dd-MM-同一页面上输入元素中的 yyyy

现在我不介意采用任何一种方式,只要它是一致的。 如何使浏览器的日期输入和 Blazor 的 .ToString() 使用相同的日期格式,即使浏览器和 OS 具有不同的设置?我在这里看到关于如何 use the Accept-Language header automatically (sent based on client's browser settings) 的说明,但似乎 HTML 输入控件不遵守这一点,而是使用 OS 设置。

我可以更改输入[type=date] 控件以使用其格式的 Accept-Language 设置,而不是 OS 设置吗?

假设我做不到,可以反过来做吗?如何让我的 Blazor WebAssembly 站点的其余部分使用 OS 的文化作为当前文化而不是“接受语言”中指定的文化?

这是我网站的屏幕截图,其中包含相互矛盾的日期格式。我的 OS (Windows 10) 设置为“English India”,我在浏览器中的 Accept-Language 是“en-US”。

对于上面的示例:这是我的 Windows 设置和浏览器客户端设置。

我找不到使用本机浏览器 <input type="text"/> 执行此操作的方法,因为它似乎使用了使用 OS 设置的 OS 控件。我相信这是大多数浏览器中缺少的功能。

我找到的唯一解决方法是为所有日期输入切换到第三方 Blazor 组件,例如 RadzenDatePicker。