.NET DateTime在序列化时添加localtime偏移量?

时间:2019-05-17 17:59:30

标签: c# .net datetime json.net utc

我的数据库中存储了一个时间戳:

2019-05-17 15:33:23.137

我为此时间戳创建一个DateTime对象。

我为此DateTime创建一个DTO

public MyDateDTO(DateTime date){
  this.date = date;
}

无论我的系统设置为哪个时区,我都可以看到,当我返回此DTO时,日期是我期望的(我同时尝试了est和utc,在两种情况下,我都看到了DateTime.Ticks = 636937040031370000。但是,似乎当此DTO序列化时,似乎已以某种方式添加了偏移量。

因此,如果我检查浏览器网络工具并将系统时区设置为UTC,则会看到浏览器收到的时间戳2019-05-17T15:33:23.137Z。但是,如果我将系统时区设置为EST,则我的浏览器会收到时间戳2019-05-17T19:33:23.137Z

如何停止添加此偏移量?我可以看到从控制器函数返回dto时,时间戳未按预期进行转换,因此我认为必须在中间件中的某个地方完成该操作?

我可以通过转换ToLocalTime对象上的调用DateTime来抵消偏移量(我认为是)来解决该问题,但我宁愿仅从一开始就排除该偏移量

0 个答案:

没有答案