2012-06-21 3 views
0

У меня есть сетка telerik, в которой у меня есть столбец, где я показываю DateOfBirth пользователя. Ниже приведен частичный код моего столбца Telerik сетки:Telerik дата в столбце даты даты на один день

columns.Bound(c => c.DOB).Title("DateofBirth").Format("{0:MM/dd/yyyy}"); 

Как я отображать на части даты на интерфейсе я возвращаюсь .Date из модели, как показано ниже:

public DateTime? DOB 
    { 
     get 
     { 
      if (DateOfBirth > DateTime.MinValue) 
       return DateOfBirth.Date; 
      else 
       return null; 
     } 
    } 

Где DateOfBirth является дата, которую я получаю из базы данных, которая имеет формат даты и времени. Проблема в том, что я вижу дату на один день в некоторых сценариях и не всегда. что может быть причиной этого?

Например, если дата возвращается из БД 06/21/2012 12:00:00 PM тогда я получаю как 06/20/2012

ответ

1

Это, возможно, придется делать с культурой конкретной даты-времени. Вы используете разные культуры. Например, я столкнулся с сценариями, где база данных является универсальным временем, и мне пришлось анализировать дату, чтобы получить определенную культуру.

Несколько часов изменения в конечном итоге меняют дату на один день.

Вот пример использования: http://msdn.microsoft.com/en-us/library/ey1cdcx8

Пример кода:

DateTime date = DateTime.Parse(dbvalue, null, System.Globalization.DateTimeStyles.AdjustToUniversal); 

или System.Globalization.DateTimeStyles.AssumeLocal, чтобы добраться до местных.

+0

, но я удаляю столбцы, которые уже хранятся в базе данных. это будет иметь значение? – TRR

+0

дата - это база данных «21.06.2012» 12:00:00 PM – TRR

+0

Я думаю, что вопрос о том, что @retslig спрашивает, знаете ли вы, что дата, хранящаяся в базе данных, является временем UTC или временем, местным для машины, Введено – Joeb454

Смежные вопросы