我想要解决,在输出时需要根据格式为:“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” 都可以,如何解决,谢谢大神
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(
new IsoDateTimeConverter()
{
DateTimeFormat = "yyyy-MM-dd"
}
);
你在加上这句话试试
你好,
加上以后,还是没有效果
如果输入这样,日期就不能识别出来
{
"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)
};
}
@刘宏玺: 我也想过,只是这个得一个一个进行处理。不过还是谢谢您。