c# - 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 对象的“空”值让我怀疑,如下面的屏幕截图所示:
解决方案
前几天我遇到了类似的问题。此时 Blazor Wasm 不包含任何时区信息,本地时区始终为 UTC。但是,为了获得正确的时区信息,有一个可用的修复程序。看看这个:Blazor WebAssembly 应用程序(客户端)时区工具包
推荐阅读
- c# - Azure 监控 REST API -(请求的名称有效,但未找到请求类型的数据。)
- python - 递归计算列表中的列表
- java - 如何在 Apache Camel 路由中再次读取跳过的文件?
- c# - 如何查询线程中的任务
- swift - Swift Firestore - 对文档 ID 进行编码,使其不会在 Firebase 中显示为单独的字段
- php - Laravel:为什么 Eloquent 显示隐藏字段?
- cypress - 从页面中获取文本,然后根据 API 调用对其进行验证
- teradata - 从 teradata 导出的 sql 文件开始时添加的垃圾值
- numpy - 使用 numpy 在二维数组中查找模式
- postgresql - 将本地 docker 卷挂载到 kubernetes pod