Blazor WASM DatePicker UTC

Blazor WASM DatePicker UTC

我有一个 C# WASM Blazor 服务器端应用程序。

当用户选择 2022 年 3 月 29 日时,它将在 23:00 小时作为 2022 年 3 月 28 日进入数据库。

向后推 1 小时,推到前一天。

当我使用本地浏览器在 VS 中调试并单步执行代码时,不会发生这种情况。

我感觉应用客户端正在为实时用户调整时间。

我们想要 UTC 中的所有内容,但我不知道我需要在哪里解决这个问题。

发送业务逻辑数据的 DTO 中的字段是:

public DateTime? LatestPickupDate { get; set; }

它是 SQL 数据库中的日期时间 2(7)

谁能给点建议?

谢谢

关于客户端时区,您需要自行处理

这里有一些解释:https://www.meziantou.net/convert-datetime-to-user-s-time-zone-with-server-side-blazor.htm

牢记:

  • 以 UTC 格式保存数据库中的日期(像上例一样以 UTC 格式检索字段)
  • 当您在用户处呈现数据库中的现有日期时,执行相反的操作(使用客户端 TimezoneOffset
  • 将 utc 日期 datetime 调整为本地

这原来是 Safari 的问题。当用户在 Chrome

时正确显示日期