自托管WebAPI控制器日期在美国而不是英国格式

本文关键字:英国 格式 美国 WebAPI 控制器 日期 | 更新日期: 2023-09-27 18:14:55

我已经读了很多关于这个问题的线程,但还没有能够得到它的修复。

我有一个自托管API,总部设在英国…所以想要英国日期时间格式

基本上,我将日期作为DD/MM/YYYY作为GET发送到我的apiconcontroller,它们以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");
    }
有谁能给我点建议吗?

自托管WebAPI控制器日期在美国而不是英国格式

您不应该将日期序列化器绑定到特定的日期格式或区域性。日期格式仅供演示使用。

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

SO:"正确的"JSON日期格式