Я не верю, что в DateTime
есть что-то, кроме простого 64-битного целого числа - в основном это дата / время в тиках и "вид", закодированный в верхней паре битов. Таким образом, создание нового DateTime
создается локально. Другими словами, я боюсь, что сомневаюсь в ваших утверждениях о том, что происходит, когда «объект такого же типа создается локально».
Вот где я бы начал исследовать - избавиться от вызова базы данных, а просто записать результат вызова Convert.ToString(serializedDateTime)
и Convert.ToString(new DateTime(2011, 7, 25))
(как пример даты, когда строковое представление делает очевидным, в какую сторону являются). Я был бы действительно удивлен, если бы вы могли получить это для двух разных форматов даты - один для значения, которое было десериализовано, и один для значения, которое было создано локально.
Какого "вида" DateTime
вы получаете после десериализации (т. Е. В результате получения свойства Kind
)? С этой информацией вы сможете построить точно равное DateTime
значение.