有没有人知道如何在返回DateTime对象时将MVC6的json输出配置为默认为ISO UTC DateTime字符串格式?
在WebApi2中,我可以设置JsonFormatter SerializerSettings并转换日期时间但是我有点担心如何在MVC6中执行此操作
sf.*_*sf. 85
我偶然发现了一些让我弄明白的东西.
以防万一有人想知道
在您的Startup.ConfigureServices中
services.AddMvc().AddJsonOptions(options =>
{
options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Utc;
});
Run Code Online (Sandbox Code Playgroud)
Dim*_*rov 15
如果您已迁移到 ASP.NET Core 3.0,则 sf. 已发布不再有效。为了让您免于我的一些头痛,这是您需要做的。首先创建一个自定义的 DateTime JSON 转换器:
public class DateTimeConverter : JsonConverter<DateTime> {
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {
return DateTime.Parse(reader.GetString());
}
public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options) {
string jsonDateTimeFormat = DateTime.SpecifyKind(value, DateTimeKind.Utc)
.ToString("o", System.Globalization.CultureInfo.InvariantCulture);
writer.WriteStringValue(jsonDateTimeFormat);
}
}
Run Code Online (Sandbox Code Playgroud)
然后在您Startup.cs的如下使用它:
services.AddControllersWithViews()
.AddJsonOptions(options => {
options.JsonSerializerOptions.Converters.Add(new DateTimeConverter());
});
Run Code Online (Sandbox Code Playgroud)
我希望这可以帮助别人。
| 归档时间: |
|
| 查看次数: |
10255 次 |
| 最近记录: |