asp.net-core - Newtonsoft JsonConvert 日期时间格式为 JavascriptSerializer
问题描述
我正在使用 .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 获得这样的日期
谢谢
解决方案
JSON.NET 使用的序列化日期的默认格式是ISO 8601,大多数解析器和语言(包括 JavaScript)都能正确理解。过去,您所知道的格式JavascriptSerializer
已被使用。如果您需要使用该格式,则可以通过配置进行DateFormatHandling
配置。
在 ASP.NET Core 2.x 中,您可以ConfigureServices
在 Startup 类的方法中这样配置它:
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的引用。
推荐阅读
- python - 如何在 C++ 代码中使用 pywin32 函数?
- node.js - 使用 JSBarcode 创建条形码表
- python - 我正在尝试使用触摸屏上的按钮搜索透视下拉菜单
- scripting - 防止包含的 js 出现在 Photoshop 的脚本菜单中
- angular - 为什么导入的模块会影响 Angular 12 中的延迟加载模块?
- import - 导入功能在 PyCharm 上不起作用,我无法从其他问题中弄清楚为什么,可能出了什么问题?
- ruby - Watir 错误 - 无法运行 Watir 代码示例
- javascript - 节点 mysql 查询的 ECONNRESET 代理错误
- java - 如何从Java中的字符串文本中提取url、日期时间、requestType、resourceUrl、状态
- javascript - 在变量中访问 ajax POST 响应