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

Blazor Wasm指定nl-NL文化格式化日期失效问题排查

问题原因

Blazor WASM 运行在浏览器环境中,.NET 默认只为这类应用打包有限的区域性资源(像 en-US、de-DE、es-ES、fr-FR 这类常用区域性),nl-NL 不在默认包含的范围内。当你调用未被包含的区域性进行格式化时,.NET 会自动回退到浏览器的默认区域性(你的环境是 en-US),所以荷兰文的日期格式会变成英文样式。

而 .NET Fiddle 基于完整的 .NET 运行环境,默认包含了所有区域性资源,因此 nl-NL 可以正常输出对应格式。

解决方案

要让 Blazor WASM 支持 nl-NL 区域性,只需在项目中手动配置包含对应的资源即可:

步骤1:修改项目配置文件

打开 Blazor WASM 项目的 .csproj 文件,在 <PropertyGroup> 节点下添加 <SupportedCultures> 配置,明确列出需要支持的区域性:

<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
  <!-- 其他原有配置 -->
  <PropertyGroup>
    <!-- 已有的项目属性 -->
    <SupportedCultures>en-US;de-DE;es-ES;fr-FR;nl-NL</SupportedCultures>
  </PropertyGroup>
</Project>

步骤2:重新构建项目

保存配置文件后,重新构建你的 Blazor WASM 应用。此时 nl-NL 的区域性资源会被打包到应用中,日期格式化就能按照预期工作了。

验证效果

修改完成后,你的原有代码:

@DateTime.Now.Date.ToString("D", new CultureInfo("en-US"))<br />
@DateTime.Now.Date.ToString("D", new CultureInfo("de-DE"))<br />
@DateTime.Now.Date.ToString("D", new CultureInfo("es-ES"))<br />
@DateTime.Now.Date.ToString("D", new CultureInfo("fr-FR"))<br />
@DateTime.Now.Date.ToString("D", new CultureInfo("nl-NL"))

将正确输出 nl-NL 对应的长日期格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 18:38:17