我正在使用.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(result1);
这不会返回我需要的格式: “ / Date(1249335477787)/”;
如何通过.NET Core获取这样的日期
谢谢
答案 0 :(得分:1)
序列化JSON.NET使用的日期的default format是ISO 8601,大多数解析器和语言(包括JavaScript)都可以正确理解。过去,使用的是JavascriptSerializer
格式。如果需要使用该格式,则可以通过DateFormatHandling
configuration进行配置。
在ASP.NET Core 2.x中,您可以在Startup类的ConfigureServices
方法中像这样配置它:
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。