配置Newtonsoft序列化程序序列化一个关于本地时间的日期

时间:2018-02-21 21:10:27

标签: datetime asp.net-core json.net asp.net-core-2.0

我通过以下方式将javascript日期发送到服务器:

let start = new Date().toISOString()

此日期字符串以UTC日期字符串形式发送。

在服务器端,我通过myDate.ToLocalTime()将此utc日期转换为本地日期(CH / DE / AT),我想将其保存在数据库中。

我不想在很多地方进行这种手动转换。

如何使用newtonsoft json序列化程序修复此问题?

我总是得到当前的当地时间:

var cultureInfo = new CultureInfo("de-DE");
            CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
            CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;

在我的Startup.cs

1 个答案:

答案 0 :(得分:0)

您可以在ConfigureServices方法中添加以下内容:

services.AddMvc()
    .AddJsonOptions(o =>
    {
        o.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local;
    }

DateTimeZoneHandling settingDateTimeZoneHandling Enumeration定义DateTimeZoneHandling.Local如下:

  

本地 - 视当地时间。如果DateTime对象表示   协调世界时(UTC),它被转换为当地时间。