2

我正在使用 mattlewis 角度日历来显示事件,但它没有显示正确的时间。从 api 正确获取时间,但在视图中它增加了 5:30 小时。例如,如果会议在上午 11:00 开始,则在周视图中显示下午 4:30。我在 GMT+530 时区

4

2 回答 2

1

根据我对您的问题的理解,您需要确保 API 的日期是时区的或以毫秒为单位,这样您的前端应用程序将获得具有正确时区的正确日期。

于 2019-09-27T15:46:27.940 回答
0

我知道这是一个旧线程,但为了清晰起见,我想展示我是如何在我的系统上解决这个问题的。

您发送到服务器进行存储的 DateTime 值需要转换为 UTC 时间,在我的情况下,这是使用 Entity Framework 和 Dotnet Core 5.0,所以我在存储时将其转换为 UTC,如下所示

createdEvent.StartDate = newEvent.StartDate.ToUniversalTime();
createdEvent.EndDate = newEvent.EndDate.ToUniversalTime();

然后我检查数据库,日期时间将按时区从前端的值更改为 UTC 时间。

因此,例如在前端选择的日期时间是

"startDate": "2021-03-10T08:00:00"
"endDate": "2021-03-10T10:00:00"

当它存储在数据库中时,上面的代码将根据系统的时区将值更改为 UTC,对我来说这是非洲/约翰内斯堡,它是 GMT+02:00,所以存储在数据库中的值现在是这个

"2021-03-10 06:00:00.000000"

现在,当值返回到前端时 - 在我的情况下是 Angular 日历,在 Ops 情况下,它将作为 UTC 时间标记返回。

这是在 C# dotnet core 5.0中按照链接中ChristopherHaws注释中的代码完成的。

这会将值发送到前端,如下所示

"startDate": "2021-03-10T06:00:00Z",
"endDate": "2021-03-10T08:00:00Z"

这将在日历中正确显示。 在此处输入图像描述

于 2021-03-06T06:59:46.110 回答