Причина, по которой некоторые DateTime серийный с GMT смещение, а некоторые не должен делать с Вид собственности из DateTime
DateTimes создать с DateTime.Now() установить их Kind собственность как DateTimeKind.Local DateTimes create with DateTime.Parse() устанавливает свойство своего типа как DateTimeKind.Unspecified
Функция ToString («o») может использоваться для сериализации в формате GMT. Вид неуказанного не знает смещения, поэтому он пропускается.
неопределенный Тип: 2012-03-24T00: 00: 00 местный Вид: 2012-03-22T15: 31: 18 -05: 00
Существует функция называется SpecifyKind, но это работает только тогда, когда вид is NOT установлен на неуказанный.
Решение заключается в создании DateTime со следующим конструктором: DateTime (Год, Месяц, День, Час, Минута, Второе, DateTimeKind.Local);
http://msdn.microsoft.com/en-us/library/t882fzc6.aspx
Я создал короткий метод расширения для этого:
public static DateTime SpecifyKindLocal(this DateTime datetime)
{
return new DateTime(datetime.Year, datetime.Month, datetime.Day, datetime.Hour, datetime.Minute, datetime.Second, DateTimeKind.Local);
}
Я надеюсь, что это помогает кто-то еще