Лучший способ обмена значениями даты и времени - это их сериализация в независимые от культуры строки, основанные на UTC, например: 2010-09-18T18: 37: 11. Проблема в том, что операции, связанные с датой и временем, обычно выполняются некорректно ...
Что касается вашей проблемы, я предполагаю, что она появляется во время десериализации времени JSON, то есть .Net обрабатывает это время как локальное (DateTimeKind.Local или DateTimeKind.Unspecified), таким образом, преобразовывая его. Не зная, как с этим справиться, грубая сила, вероятно, будет посылать сериализованную строку, как указано выше, и десериализовать вручную, как это:
DateTime date = DateTime.Parse(dateString, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);