.NET DateTime добавление локального времени смещения при сериализации? - PullRequest
0 голосов
/ 17 мая 2019

В моей базе данных хранится метка времени:

2019-05-17 15:33:23.137

Я создаю DateTime объект для этой метки времени.

Я создаю DTO для этого DateTime

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 в счетчикдействовать смещение (я думаю?), но я бы предпочел просто исключить это смещение в первую очередь

...