我的数据库中的日期存储为Utc.但当我用实体框架检索它们时,它们显示为未指定类型.

当JSON.Net序列化它们时,它们不是UTC格式.有没有办法告诉JSON.Net将DateTimes序列化为UTC,即使它们的类型没有指定为UTC?

推荐答案

JsonSerializerSettingsUtc之间设置DateTimeZoneHandling.这将在序列化日期之前将所有日期转换为UTC.

public void SerializeObjectDateTimeZoneHandling()
{
  string json = JsonConvert.SerializeObject(
    new DateTime(2000, 1, 1, 1, 1, 1, DateTimeKind.Unspecified),
    new JsonSerializerSettings
    {
      DateTimeZoneHandling = DateTimeZoneHandling.Utc
    });

  Assert.AreEqual(@"""2000-01-01T01:01:01Z""", json);
}

文档:DateTimeZoneHandling setting

Asp.net相关问答推荐

ASP.NET MVC项目中的产品采购并发性测试

Windows 命令行中的/p:是什么意思

分层架构中的 ASP.NET 和实体框架 - 仅将实体框架用于 ORM

web.config 部分的单独配置文件

某些黑客能否从用户那里窃取 Web 浏览器 cookie 并在网站上使用该名称登录?

Server.Transfer 在执行子请求时抛出错误.如何解决?

在 appSettings 中存储字符串数组?

如果站点在 localhost 或 127.0.0.1 上运行,如何判断 ASP.NET MVC 视图

如何使用三个按钮是否和取消显示确认alert ,如 MS Word 中所示

如何确定 web.config 中的编译 debug="true"

System.Linq.Dynamic 不支持 OrderByDescending("someColumn")?

无法使用单例Microsoft.AspNetCore.Hosting.Internal.HostedServiceExecutor中的范围服务MyDbContext

无法复制文件.访问路径被拒绝

如何针对异常需求自定义 ASP.NET Web API AuthorizeAttribute

如何从后面的 ASP.NET 代码访问 HTML 表单输入

@(at) 登录文件路径/字符串

web.config 中与 targetFramework 相关的配置错误

在 JavaScript 中获取当前会话值?

为什么混合 Razor Pages 和 VueJs 是一件坏事?

脚本管理器控制实际上是做什么的?