为什么.NET将UTC日期更改为服务器时区?

时间:2016-06-07 01:24:57

标签: c# .net angularjs date datetime

我有一个AngularJS应用程序,它以UTC格式向.NET控制器发布日期:

CreateEvent: function (event) {

        var event_date = moment.utc(new Date(event.event_date)).format();

        return $http({
            url: '/test/CreateEvent/',
            method: "POST",
            data: { event_date: event_date}
        });

    }

如果我将日期2016年7月4日,08:00放在event.event_date中,则会将其转换为" 2016-07-03T22:00:00Z"发布到服务器。

以下是我.Net控制器的片段:

public JsonResult CreateEvent(@event evt, int eventOffset)
    {

        DateTime eventDate = evt.event_date;

        ...
    }

我在第一行设置了断点,evt.event_date包含日期2016年7月4日08:00。我的服务器在GMT + 10时区运行。为什么将日期转换为当前时区以及如何停止此操作?

1 个答案:

答案 0 :(得分:0)

我怀疑一个好的捷径是将日期时间转换为具有明确格式的字符串。服务器端必须记住确定的格式。

我理解你的问题。无论数据库和存储方式如何,JSON对象的date属性都可以简单地转换,您甚至无法在数据库中存储。它必须与序列化问题有关。

这是一个很好的日期: - http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx