c#Newtonsoft DateTimeZoneHandling.RoundtripKind无效

时间:2016-12-22 16:16:17

标签: c# json.net

我在WebApiConfig文件中有这个代码来序列化数据:

    public static void Register(HttpConfiguration config)
    {
        config.EnableCors();

        config.MapHttpAttributeRoutes();

        config.Filters.Add(new DbValidationErrorAttribute());
        config.Filters.Add(new ValidationFailedErrorAttribute());
        config.Filters.Add(new GenericExceptionFilterAttribute());

        var jsonFormatter = config.Formatters.JsonFormatter;
        var jSettings = new Newtonsoft.Json.JsonSerializerSettings()
        {
            DateFormatHandling = DateFormatHandling.IsoDateFormat, 
            DateParseHandling = DateParseHandling.DateTimeOffset, 
            DateTimeZoneHandling = DateTimeZoneHandling.RoundtripKind
        };

        jsonFormatter.SerializerSettings = jSettings;

        config.Services.Replace(typeof(IContentNegotiator), new JsonContentNegotiator(jsonFormatter));
    }

这是一个WebApi。控制器从前端获取数据。我的问题是日期。它们具有与服务器时区不同的时区,并且它们将转换为服务器时区。我在JsonSerializerSettings中尝试了很多不同的选项。他们都没有工作。我还下载了最新的newtonsoft版本。

避免时区转换的任何帮助?

1 个答案:

答案 0 :(得分:0)

您应该使用DateTimeZoneHandling.Utc