首页 新闻 会员 周边 捐助

webapi 统一日期格式输出

0
悬赏园豆:5 [待解决问题]

我想要解决,在输出时需要根据格式为:“yyyy-MM-dd hh:mm:ss”

在输入时不受限制 “yyyy-MM-dd hh:mm:ss” 和 “yyyy-MM-dd” 都可以,如何解决,谢谢大神

-------------------------------------

在WebApiConfig.cs中配制如下:

==============实验代码===================

// 干掉XML序列化器
config.Formatters.Remove(config.Formatters.XmlFormatter);
// 解决json序列化时的循环引用问题
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
// 对 JSON 数据使用混合大小写。驼峰式,但是是javascript 首字母小写形式.
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
//对日期格式进行统一处理
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
new IsoDateTimeConverter()
{
DateTimeFormat = "yyyy-MM-dd hh:mm:ss"
}
);

==============实验代码===================

public class ValuesController : ApiController
{
[HttpPost]
public ResponseEntity PostFee(RequestEntity request)
{
return new ResponseEntity()
{
id = request.id,
dt = request.dt
};
}

}

public class RequestEntity
{
public string id { set; get; }
public DateTime dt { set; get; }
}

public class ResponseEntity
{
public string id { set; get; }
public DateTime dt { set; get; }
}

=================================

http://localhost:48078/api/Values

请求:

{
"id": "sample string 1",
"dt": "2016-03-12"
}

响应:

{
"id" : "sample string 1",
"dt" : "0001-01-01 12:00:00"
}

我想要解决,在输出时需要根据格式为:“yyyy-MM-dd hh:mm:ss”

在输入时不受限制 “yyyy-MM-dd hh:mm:ss” 和 “yyyy-MM-dd” 都可以,如何解决,谢谢大神

共同学习,共同进步的主页 共同学习,共同进步 | 初学一级 | 园豆:132
提问于:2016-03-12 21:38
< >
分享
所有回答(1)
1

config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
new IsoDateTimeConverter()
{
DateTimeFormat = "yyyy-MM-dd"
}
);

你在加上这句话试试

刘宏玺 | 园豆:14020 (专家六级) | 2016-03-12 23:47

你好,

加上以后,还是没有效果

如果输入这样,日期就不能识别出来

{
"id": "sample string 1",
"dt": "2016-03-13"
}

必须输入成如下格式

{
"id": "sample string 1",
"dt": "2016-03-13 01:07:11"
}

 

@共同学习,共同进步: 那就用一个笨方法吧

public class RequestEntity
{
public string id { set; get; }
public string dt { set; get; }
}

你把RequestEntity的时间改成string类型,然后

[HttpPost]
public ResponseEntity PostFee(RequestEntity request)
{
return new ResponseEntity()
{
id = request.id,
dt = DateTime.Parse(request.dt)
};
}

支持(0) 反对(0) 刘宏玺 | 园豆:14020 (专家六级) | 2016-03-13 21:21

@刘宏玺: 我也想过,只是这个得一个一个进行处理。不过还是谢谢您。

清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册