2016-10-26 48 views
0

我已阅读关于此问题的许多线索,但尚未得到解决。美国自行托管的WebAPI控制器日期不是英国格式

我有一个自托管API,总部设在英国的......所以希望英国的日期时间格式

基本上,我送日期为DD/MM/YYYY为得到我APIController和他们来了以MM/DD/YYYY形式输入控制器。

所以,当我发送31/12/2016我收到400错误返回。当我发送12/31/2016它完美的作品。

这是我的服务,我试图将文化设置为en-GB,但这对我的问题没有任何影响。

public APICoreService() 
    { 
     InitializeComponent(); 

     _config = new MyHttpsSelfHostConfiguration(ServiceAddress); 
     _config.MapHttpAttributeRoutes(); 
     _config.Routes.MapHttpRoute("DefaultApi", "{controller}/{id}", new { id = RouteParameter.Optional }); 

     // upload size control 
     _config.MaxReceivedMessageSize = 5242880; // 5mb 
     _config.MaxBufferSize = 5242880; // 5mb 

     // add the controller validation filter 
     _config.Filters.Add(new InventryCoreAPIService.Filters.ValidateViewModelAttribute()); 

     // turn on error messages 
     GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always; 

     _config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; 

     // set the culture to solve the date problem 
     _config.Formatters.JsonFormatter.SerializerSettings.Culture = new CultureInfo("en-GB"); 
    } 

任何人都可以给我任何指针吗?

回答

3

您不应该将日期序列化器绑定到特定的日期格式或文化。日期格式应仅用于演示目的。

JSON是一种数据格式,不是演示文稿格式。 JSON没有指定日期格式,但是JavaScript使用了日期格式 - 为了兼容,使用日期的JavaScript格式通常是个好主意。

SO: The “right” JSON date format

+0

谢谢。我试图在错误的地方解决这个问题! –

相关问题