DateTime.Now в Blazor Webassembly является нулевым - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть этот код:

 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 в компоненте, когда я отлаживаю, хотя переменная 'now' равна нулю, переменная 'dayOfYear' правильно показывает 98, но 'now.Hour' равно 0, а правильное время компьютера - 15:30. Почему переменная «сейчас» равна нулю? И как это правильно сообщает dayOfYear 98? почему час 0 !? Я использую Blazor 3.2, используя его новую возможность отладки.

Обновление : час правильный, только значение 'null' объекта DateTime ставит меня под сомнение, как показано на следующем снимке экрана:

enter image description here

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Я столкнулся с подобной проблемой на днях. В настоящее время Blazor Wasm не содержит никакой информации о часовом поясе, а местный часовой пояс всегда равен UT C. Тем не менее, есть исправление, чтобы получить правильную информацию о часовом поясе. Проверьте это: Приложение для часовых поясов Blazor WebAssembly (на стороне клиента)

0 голосов
/ 07 апреля 2020

Решил мою проблему с помощью этого кода, может быть, локальный Am Pm является проблемой:

DateTime now = DateTime.Now.Date; // here
    int hour = DateTime.Now.Hour; // here       
    double noon = 0;
    int dayOfYear = now.DayOfYear; // here
    bool isAM = false;
    if (dayOfYear >= 80 && dayOfYear <= 260)
    {
        noon = 13;
        int h = hour; 
        isAM = hour >= 13 ? false : true; // here
    }
...