Формат даты и времени Newtonsoft JsonConvert в виде JavascriptSerializer - PullRequest
0 голосов
/ 11 июня 2019

Я использую .NET Core и хочу сериализовать дату в тот же формат, что и System.Web.Script.JavascriptSerializer, но вместо этого использую NewtonSoft jsonconverter (или что-то еще совместимое с .NET Core, поскольку JavascriptSerializer является .NET рамки).

Пример:

DateTime result1;
var dt1 = DateTime.TryParse("12.06.2012 10:34:00",CultureInfo.GetCultureInfo("DA-dk"), DateTimeStyles.None, out result1);

JsonConvert.Serialize (результат1);

Это НЕ возвращает такой формат, который мне нужен: "/ Дата (1249335477787) /";

Как мне получить такую ​​дату с помощью .NET Core

Спасибо

1 Ответ

1 голос
/ 11 июня 2019

Формат по умолчанию для сериализации дат, который использует JSON.NET, - ISO 8601 , что правильно понимается большинством синтаксических анализаторов и языков (включая JavaScript).В прошлом использовался формат, который вы знаете из JavascriptSerializer.Если вам нужно использовать этот формат, вы можете настроить его с помощью конфигурации DateFormatHandling .

. В ASP.NET Core 2.x вы можете настроить его следующим образом:Метод 1011 * в вашем классе запуска:

services.AddMvc().AddJsonOptions(options =>
{
    options.SerializerSettings.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat;
});

Начиная с ASP.NET Core 3.0, по умолчанию используется другой сериализатор, который не будет иметь эту опцию конфигурации, но вы можете переключиться обратнов JSON.NET и настройте его соответствующим образом:

services.AddControllers()
    .AddNewtonsoftJson(options =>
    {
        options.SerializerSettings.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat;
    });

Вам потребуется ссылка на Microsoft.AspNetCore.Mvc.NewtonsoftJson , тогда, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...