首页 > 解决方案 > Blazor Webassembly 中的 DateTime.Now 为空

问题描述

我有这个代码:

 DateTime now = DateTime.Now; // null
    decimal noon = 0m;
    int dayOfYear = now.DayOfYear; // reports 98, correct
    bool isAM = false;
    if (dayOfYear >= 80 && dayOfYear <= 260)
    {
        noon = 13m;
        int h = now.Hour; // 0 (should be 15)          
        isAM = now.Hour >= 13 ? false : true; // true (should be false)
    }

在组件中的 Blazor webassembly 中,当我调试时,虽然“now”变量为空,但“dayOfYear”变量正确显示 98,但“now.Hour”为 0,正确的计算机时间是下午 3:30,为什么“现在” ' 变量为空?以及它如何正确报告 dayOfYear 98?为什么小时是0!?我正在使用 Blazor 3.2 使用其新的调试功能。

更新:小时是正确的,只有 DateTime 对象的“空”值让我怀疑,如下面的屏幕截图所示:

在此处输入图像描述

标签: c#blazor-client-side

解决方案


前几天我遇到了类似的问题。此时 Blazor Wasm 不包含任何时区信息,本地时区始终为 UTC。但是,为了获得正确的时区信息,有一个可用的修复程序。看看这个:Blazor WebAssembly 应用程序(客户端)时区工具包


推荐阅读