首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解析接收到的JSON日期时,将采用哪种格式控制器?

解析接收到的JSON日期时,将采用哪种格式控制器?
EN

Stack Overflow用户
提问于 2017-03-30 06:23:00
回答 1查看 48关注 0票数 0

我将JSON数据发布到我的控制器。其中一个字段包含日期。当我以MM/dd/yyyy格式发送日期时,控制器采用dd/MM/yyyy格式。由于这个原因,我的月份变成了服务器端的一天。如果我发送3/ 20 /2017,那么在服务器端就会变成01/01/0001,因为20不是有效的月份。如何强制控制器采用MM/dd/yyyy格式的3/20/2017。我最初认为iis是指我的系统时间格式。但即使在我将系统日期格式更改为MM/dd/yyyy之后,它也无法工作。

我要发送给服务器的示例JSON。请求类型为POST。(这里我只发布日期字段,但在我的实际请求中,我也有其他字段。)

代码语言:javascript
运行
复制
{date:"3/20/2017"}

型号:

代码语言:javascript
运行
复制
Test{
public DateTime Date{get;set;}
}

操作:

代码语言:javascript
运行
复制
ActionResult Demo(Test test)
{
//some code
}
EN

回答 1

Stack Overflow用户

发布于 2017-03-30 07:26:58

假设您有这个AJAX调用:

代码语言:javascript
运行
复制
var date = "3/20/2017";
...
$.ajax({
        ...
        url: '/Controller/Demo',
        type: 'POST',
        data: { date: date },
        dataType: 'json',
        ...
       });

在控制器端,使用DateTime.ParseExact将日期转换为DateTime格式:

代码语言:javascript
运行
复制
[HttpPost]
public ActionResult Demo(String date)
{
    // other stuff
    ...
    var test = new Test();
    test.Date = DateTime.ParseExact(date, "M/d/yyyy", CultureInfo.InvariantCulture);
    ...
    // other stuff
}

为了避免与日期格式有关的麻烦,建议使用toISOString()方法将UTC转换为UTC(详细信息请参见/a/23502790 ):

View (JS)

代码语言:javascript
运行
复制
var date = new Date("3/20/2017").toISOString();

控制器

代码语言:javascript
运行
复制
test.Date = DateTime.Parse(date);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43110039

复制
相关文章

相似问题

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