在 Blazor 中本地化日期时间(和数字)

may*_*ʎɐɯ 5 localization asp.net-core blazor

我正在基于最新的 Core 3.1 开发 Blazor 项目。

UI 文化正确显示日期和数字,如图所示。

但是当我使用 EditForm 时,数字和日期没有按照它应该的格式进行格式化。

所以这个 EditForm 的代码部分

<InputDate id="date" class="form-control" @bind-Value="@TaskObject.Date" />
Run Code Online (Sandbox Code Playgroud)

所以在 EditForm 中它看起来像这样,这不是正确的文化格式:

在此处输入图片说明

但是在 UI 中看起来像这样,这没关系:

在此处输入图片说明

当我刚接触 Blazor 时,我尝试在线阅读不同的内容以获取有关此问题的一些知识。

所以我厌倦了以下内容:

没有运气。

然后我尝试阅读此内容,发现内容不适用于 Core 3.1。

我的问题是,究竟应该怎么做才能使 EditForm 像 UI 一样显示日期和数字,为什么 EditForm 会发生这种情况?

itm*_*nus 5

为什么 EditForm 会发生这种情况

内置InputDate/InputNumber被设计为文化不变组件。请参阅InputDate和InputNumber的源代码

到底应该做什么才能使 EditForm 像 UI 那样显示日期和数字,

我认为我们可以创建一个自定义InputDate<TValue>实现。然而,我错了。根据MDN

显示的日期根据用户浏览器的区域设置进行格式化,但解析的值始终采用 yyyy-mm-dd 格式。

即使我们获得了InputDate<TValue>尊重当前的自定义实现CultureInfo,我们仍然需要一些 js/css 来显示正确的格式。IMO,没有标准的方法来实现这一点。另请参阅SO 上的此线程


归档时间:

查看次数:

4868 次

最近记录:

4 年,9 月 前