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

标签 c# .net angularjs date datetime

我有一个 AngularJS 应用程序以 UTC 格式向 .NET Controller 发布日期:

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,moment 会将其转换为发布到服务器的“2016-07-03T22:00:00Z”。

下面是我的 .Net Controller 的一个片段:

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

        DateTime eventDate = evt.event_date;

        ...
    }

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

最佳答案

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

我明白你的问题。无论数据库和存储方式如何,JSON 对象的日期属性都会简单地进行转换,甚至没有达到存储在数据库中的程度。肯定和序列化问题有关。

这是一篇关于日期的好帖子:- http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx

关于c# - 为什么 .NET 将 UTC 日期更改为服务器时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37669122/

相关文章:

javascript - jQuery.ajax 未读取成功 : function()

c# - 使用 LINQ 表达式获取多个嵌套字典除外

c# - JavaScript 中的 Div 可见性

javascript - ng-class 的这种(看似)意外行为背后的解释是什么?

javascript - 在第二个 ng-repeat 中过滤,使用 bootstrap 3 维护列样式

java - 有没有办法判断网络应用程序的编程语言?

c# - Oracle .Net 托管数据访问错误 : Could not load type 'OracleInternal.Common.ConfigBaseClass' from assembly

c# - C# 中更快的字符串比较

c# - 如何在使用 MvcMailer 发送 HTML 电子邮件的同时移动 CSS 与 PreMailer.Net 内联

angularjs - 使用 Angular,如何将单击事件绑定(bind)到元素并在单击时向下和向上滑动同级元素?