【问题标题】:Date formatting in Blazor dotnet 5Blazor dotnet 5 中的日期格式
【发布时间】: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


【解决方案1】:

我用recordTimeDTO.DateActive.ToString("F", CultureInfo.GetCultureInfo("da-DK")) 进行了测试,然后它显示正确,所以似乎是 Panagiotis Kanavos 描述的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 2021-05-14
    • 1970-01-01
    • 2012-09-08
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多