向.net api 2控制器发送时间更改为time + GMT偏移量



我有一个angularJS应用程序,它执行一些基本的日历功能。编辑后,当我将时间发送回服务器时,我注意到时间不是用户输入的时间,而是用户输入的时间加上GMT偏移量。

例如,如果我在发布之前将Calendar Event写入console.log,我将看到

end: Thu May 15 2014 11:30:00 GMT-0500 (Central Daylight Time)
id: 32525
start: Thu May 15 2014 10:00:00 GMT-0500 (Central Daylight Time)
这是我在angularJS中保存事件的方法
saveEvent = function(calEvent){
    console.log(calEvnt);
    $http.post('http://localhost:52491/api/SimpleCalendarEvent/', calEvnt);
}

但是api控制器的post方法上的断点显示

start = May 25 2014, 3:00 PM
end = May 15 2014, 4:30 pm

这是我在api控制器上的post方法

public void Post(jsCalendarEvent calEvent)
{
    //calEvent.start = calEvent.start.ToLocalTime();
    //calEvent.end = calEvent.end.ToLocalTime(); 
    SaveJsCalendarEvent cmd = new SaveJsCalendarEvent(_context);
    cmd.Event = calEvent;
    cmd.Execute();
}

这里是jsCalendar Event

public class jsCalendarEvent
{
    public int id { get; set; }
    public DateTime start { get; set; }
    public DateTime end { get; set; }
}

如果取消注释

calEvent.start = calEvent.start.ToLocalTime();
calEvent.end = calEvent.end.ToLocalTime();

一切都是正确的,但这是一场等待发生的灾难。我是有人碰到过这个,知道更好的解决方法。

如果没有更多的细节,很难诊断,但是您可以考虑在jsCalendarEvent类中使用DateTimeOffset而不是DateTime

相关内容

  • 没有找到相关文章

最新更新