У меня была похожая проблема, так что, вероятно, это происходит:
DateTime имеет свойство «Kind», которое указывает, является ли дата / время локальным, UTC или «неизвестным». Когда метод контроллера имеет параметр DateTime, он устанавливает для него соответствующее значение со значением «Kind» «Local». Другими словами, это то же время, что и переданный клиент, но смещенное на часовой пояс.
Чтобы вернуться в UTC на сервере, используйте метод DateTime ToUniveralTime (). Обратите внимание, что это будет работать правильно, только если значение DateTime Kind имеет значение Local или Utc.
Пример:
public void GetDateRangeReadings(DateTime startDate)
{
startDate = startDate.ToUniversalTime();