You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor WebAssembly .NET5中DateTime.ToString不遵循当前文化日期格式问题

这确实是 .NET 5 版本 Blazor WebAssembly 的已知未修复 Bug。

问题原因

.NET 5 的 Blazor WASM 运行时在文化信息初始化阶段存在缺陷:运行时会正确识别浏览器传递的区域标识、给 CultureInfo.CurrentCulture 的 Name、DisplayName 等属性赋值正确的目标区域值,但不会同步从 ICU 国际化数据中加载对应区域的格式化规则,默认沿用了 en-US 的日期、数字等格式化配置,所以会出现你观测到的 CultureInfo.Name 是 en-GB,但 ShortDatePattern 依然是 M/d/yyyy 的矛盾现象。
即使你显式传入 en-GB 的 CultureInfo 实例调用 ToString 也不会生效,因为这个问题是运行时层面的 ICU 数据加载错误,所有文化实例的格式化属性都会被错误初始化为 en-US 的配置。

解决方案

  • 最优方案:直接升级项目到 .NET 6 及以上版本,该 Bug 已经被官方修复,你测试的 .NET 6.0.0-rc.1 及后续正式版都可以正常加载对应区域的格式化规则。
  • 如果你必须保留在 .NET 5 版本,可以手动覆写当前文化的格式化配置,在 Blazor WASM 项目的 Program.cs 的 Main 方法末尾添加如下代码即可:
var targetCulture = CultureInfo.GetCultureInfo("en-GB");
// 手动覆盖短日期格式为英国格式
targetCulture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";
// 如有需要可以同步覆盖其他格式规则,比如长日期、时间、数字格式等
CultureInfo.CurrentCulture = targetCulture;
CultureInfo.CurrentUICulture = targetCulture;

内容的提问来源于stack exchange,提问作者Patrick Szalapski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:36:04