首页 > 解决方案 > 为什么 NewtonSoft.Json 在从 DateTime 对象转换时添加 +8

问题描述

这是一个 Xamarin 表单应用程序。

在代码的某些部分,我将一个对象传输到 Web Api 2 服务。

使用以下方法序列化对象:

            var json = JsonConvert.SerializeObject(new
            {
                item.Codigo,
                registro.Fecha,
                Latitud = registro.Posicion.Latitude,
                Longitud = registro.Posicion.Longitude,
                Altitud = registro.Posicion.Altitude
            });

其中 registro.Fecha 包含日期和时间。

例如,如果该变量是 2019 年 7 月 25 日晚上7:02

日期和时间以这种方式序列化:

2019-07-25T19:02:09.53052+08:00

我怎样才能摆脱那个“+08:00”?这导致 Web Api 应用程序将数据存储为 2019 年 7 月 25 日上午07:02。我的国家在 UTC-4。我认为这就是为什么服务器以 +12 小时的差异存储数据的原因。

使用 REST 测试器时,我传递的参数不带“+08:00”,它可以工作。

我该如何解决这个问题?

我尝试添加

        var userSelectedCulture = new System.Globalization.CultureInfo("es-CL");
        System.Threading.Thread.CurrentThread.CurrentCulture = userSelectedCulture;

在 MainActivity OnCreate 方法中,但它不起作用。

问候詹姆

标签: xamarinxamarin.formsjson.net

解决方案


推荐阅读