Blazor始终以UTC格式显示日期

时间:2019-02-20 14:41:42

标签: c# .net-core webassembly blazor

我目前正在研究Blazor的一些演示和示例,发现在任何受支持的浏览器中,它始终以UTC格式显示 DateTime 和时区。我的实际时区与UTC不同。 Blazor或WebAssembly是否有任何限制?我正在使用Blazor 0.7.0版,并且有一个代码段

@functions
{
    protected override void OnInit()
    {
        Console.WriteLine($"OS: {RuntimeInformation.OSDescription} {RuntimeInformation.OSArchitecture}");
        Console.WriteLine($"Processor: {RuntimeInformation.ProcessArchitecture}");

        Console.WriteLine($"Timezone is {TimeZoneInfo.Local}");
        Console.WriteLine($"Date time is {DateTime.Now}");
    }
}

3 个答案:

答案 0 :(得分:3)

mono目前不支持

本地化。我写了一篇帖子(https://chrissainty.com/simple-localisation-in-blazor/),展示了如何在Blazor应用中实现本地化。

如果您只是想继续学习而不自己写东西,我也发布了一个nuget软件包Blazored.Localisation

答案 1 :(得分:2)

当在客户端运行Blazor时,这是与Mono Runtime相关的已知问题。正在被WebAssembly: Missing Timezone implementation

跟踪

您可以将此库用作解决方法Toolbelt.Blazor.TimeZoneKit

答案 2 :(得分:0)

如果您想在浏览器中显示当地时间的日期和时间,请查看 Blazor Time 库。

它引入了一个 <ToLocal> 标签,您可以在其中输入 UTC 或服务器时间,然后将其转换为本地时间。

<ToLocal DateTime="testUtcTime" Format="ddd mmm dd yyyy HH:MM:ss"></ToLocal>