【发布时间】:2021-05-24 07:44:50
【问题描述】:
将 Blazor WASM 从 dotnet core 3.1 更新到 dotnet 5 后,日期格式出现问题。在调试模式 (F5) 下运行 Visual Studio 时,该问题可见,但在不调试时不可见时 (Ctrl+F5)。这也是 iOS 和其他一些设备上的问题。在 Chrome 中,我正确地看到了它,但是,在挪威语中却不像预期的那样。
@recordTimeDTO.DateActive.ToString("dddd dd. MMM yyyy", CultureInfo.CreateSpecificCulture("nb-NO"))
结果:Mon 24. M05 2021(备注 M05 为一个月)
@recordTimeDTO.DateActive.ToString("F", CultureInfo.CreateSpecificCulture("nb-NO"))
结果:2021 M05 24,周一 09:27:10
最重要的是,我如何格式化它以便我看到月份名称,其次,我如何才能在挪威语中获得它?
【问题讨论】:
-
你为什么要使用。
CerateSpecificCulture而不是GetCultureInfo? -
谢谢!我现在更改了它,但没有解决问题。它仍然显示相同的输出。
-
你为什么要改变用户的文化在客户端摆在首位?我怀疑您遇到了文档的问题described in the localization section。 Blazor Wasm 将根据最终用户的语言偏好仅打包所需的内容。这适用于将浏览器保留为默认设置的业务用户。通常是开发人员切换到
en-US并遇到本地化问题。如文档所示,您还可以指定文化(如果需要) -
如果用户确实需要频繁更改文化,或者在同一页面中显示混合文化的数据,您可能必须在项目文件中设置
BlazorWebAssemblyLoadAllGlobalizationData。如果您希望用户通过设置指定首选语言,您可以在Blazor.start中设置它,而不是每个格式操作。 -
设置文化是次要问题。这是为了解决月份显示为 5 月的 M05 或 4 月的 M04 的问题,因为它忽略了我应用的字符串格式。这 @recordTimeDTO.DateActive.ToString("dddd dd. MMM yyyy") 在 iOS 和其他一些设备中以及从 Visual Studio 运行调试时总是将月份显示为 M05 为 5 月。
标签: c# .net .net-core .net-5 blazor-webassembly