在MVC中从服务器端的客户端获取jsonFormat中的不同日期

时间:2018-04-25 10:09:24

标签: c# datetime model-view-controller knockout.js timezone

我在客户端使用Knockout js,在服务器端使用MVC C#。我将以 2019-04-25T03:27:00.000Z (UTC +5:30)的形式通过日期。在服务器端我使用DateTime(使用DateTimeOffset,但因为同样的问题我已将其更改为DateTime)并获得不同的日期 {4/25/2019 8:57:00 AM}

问题: 1.如果我正在更改客户端系统的时区,那么在服务器端,它总是带有添加+5.30的日期。

  1. 我必须忽略客户端或服务器端的时间戳,以便我可以获得客户端发送到服务器的确切日期。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,所以这可能是正在发生的事情:

DateTime具有“Kind”属性,指示日期/时间是本地,UTC还是“未知”。当控制器方法具有DateTime参数时,它将其设置为具有“Kind”值“Local”的适当值。换句话说,它与客户端传输的时间相同,但会被时区抵消。

要在服务器上返回UTC,请使用DateTime ToUniveralTime()方法。请注意,只有在DateTime Kind值为Local或Utc时,这才能正常工作。

示例:

public void GetDateRangeReadings(DateTime startDate)
{
    startDate = startDate.ToUniversalTime();