首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将时间发布到.NET api 2控制器更改为时间+格林尼治标准时间偏移

将时间发布到.NET api 2控制器更改为时间+格林尼治标准时间偏移
EN

Stack Overflow用户
提问于 2014-05-19 04:20:51
回答 1查看 53关注 0票数 0

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

例如,如果我在帖子之前将日历事件写入console.log,我会看到

代码语言:javascript
复制
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中保存事件的方法

代码语言:javascript
复制
saveEvent = function(calEvent){
    console.log(calEvnt);
    $http.post('http://localhost:52491/api/SimpleCalendarEvent/', calEvnt);
}

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

代码语言:javascript
复制
start = May 25 2014, 3:00 PM
end = May 15 2014, 4:30 pm

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

代码语言:javascript
复制
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事件

代码语言:javascript
复制
public class jsCalendarEvent
{
    public int id { get; set; }
    public DateTime start { get; set; }
    public DateTime end { get; set; }
}

如果我取消注释

代码语言:javascript
复制
calEvent.start = calEvent.start.ToLocalTime();
calEvent.end = calEvent.end.ToLocalTime();

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

EN

回答 1

Stack Overflow用户

发布于 2014-05-21 14:28:19

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23726461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档