【问题标题】:Blazor Webassembly shows wrong time in UIBlazor Webassembly 在 UI 中显示错误的时间
【发布时间】:2020-11-26 16:16:57
【问题描述】:

我正在.Net 5.0 Blazor WebAssembly 中开发我的应用程序。我在 HTML 中显示当前时间。但是显示的时间总是-5.30 Hrs我系统时钟显示的时间。

经过一番谷歌搜索后,我在official docs 中找到了以下内容。

我在.csproj 文件中添加了以下标签,但仍然没有运气。

这是我的代码:

.csproj:

<PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <BlazorWebAssemblyLoadAllGlobalizationData>true</BlazorWebAssemblyLoadAllGlobalizationData>
    <InvariantGlobalization>true</InvariantGlobalization>
    <ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
</PropertyGroup>

<ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="5.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="5.0.0" PrivateAssets="all" />
    <PackageReference Include="Microsoft.Extensions.Localization" Version="5.0.0" />
    <PackageReference Include="System.Net.Http.Json" Version="5.0.0" />
</ItemGroup>

代码:

@using System.Threading
@implements IDisposable

<p>@CurrentDateTime</p>

@code {
    private Timer _timer;
    public string CurrentDateTime { get; set; }

    protected override void OnAfterRender(bool firstRender)
    {
        if (firstRender)
        {
            _timer = new Timer(DateTimeCallback, null, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1));
        }
    }

    private async void DateTimeCallback(object state)
    {
        CurrentDateTime = DateTimeOffset.UtcNow.ToLocalTime().ToString("dd MMM yyyy hh:mm:ss tt");
        await InvokeAsync(StateHasChanged);
    }

    public void Dispose()
    {
        _timer?.Dispose();
    }
}

时间截图:

请协助解决我所缺少的内容。

【问题讨论】:

  • 如果没有ToLocalTime(),你会得到什么?您的计算机设置为哪个时区?
  • 肯定有问题。它似乎没有将 UTC 转换回 IST(?)
  • .UtcNow.ToLocalTime() 应该只是 .Now 但这段代码在我的电脑上运行良好。我是 UTC +11 atm。
  • @phuzi 我的电脑设置为UTC +5.30 时区。我得到相同的结果 .Now.Utc.Now 有或没有 ToLocalTIme() 和 @Brian Parker .Now 似乎也不起作用
  • 不确定但似乎是一个实时错误github.com/mono/mono/issues/15260

标签: c# asp.net-core blazor blazor-client-side blazor-webassembly


【解决方案1】:

Microsoft.AspNetCore.Components.WebAssemblyMicrosoft.AspNetCore.Components.WebAssembly.DevServer nuget 包从版本5.0.0 更新到5.0.1 后问题得到解决

【讨论】:

    猜你喜欢
    • 2020-11-07
    • 1970-01-01
    • 2020-11-13
    • 2020-05-20
    • 2020-08-23
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 2021-03-26
    相关资源
    最近更新 更多