2013-09-03 1 views
-2

Сценарий: У меня есть входной строки в формате «гггг-мм-дд чч: мм: сс» .I есть проблема преобразования его в формат datetime. Мне нужен этот вывод datetime для столбца базы данных и возвращает примечание, соответствующее пропущенному дате времени. HEre - мой код: я попытался преобразовать строку с Datetime.ParseExact, но он возвращает другой формат.Изменение формата от дд/мм/YYY до гггг-мм-дд чч: мм: сс

Я не знаю, где я буду wrong.Please помочь

Здесь мой код: [HttpPost]

public string getdailynote(string selectedDate) 
     { 
     tablenote Dnote= new tablenote; 
     DateTime selectedDate1 = DateTime.ParseExact(selectedDate, 
              "yyyy-mm-dd HH:mm:ss", 
       CultureInfo.InvariantCulture); 
     Dnote.RealDate = selectedDate1; 
     string daily; 
     daily = _scheduler.GetDailyNote(selectedDate1); 
     return daily; 
    } 

view.cshtml:

function getdailynotes() { 
      debugger; 
      var calendar = $("#SchedulerCalendar").data("kendoCalendar"); 
      var view = calendar.value(); 
      var kendodate = dateFormat(view, 'yyyy-mm-dd HH:mm:ss'); 
      $.ajax({ 
       type: "POST", 
       url: window.location.pathname + "Scheduler/getdailynote", 
       data: { selectedDate: kendodate } 
      }) 
     .success(function (result) { 
       if (result != null) { 
       document.getElementById('dailynotes').value = result; 

      } 
     }); 
    } 

Обновление: Service.cs _schedulerfile:

public string GetDailyNote(DateTime selectedDate) 
     { 
      string returndaynote; 
      returndaynote = dbContext.GetDailyNote(selectedDate).SingleOrDefault(); 
      return returndaynote; 
     } 

from autogenerated context.cs 
public virtual ObjectResult<string> GetDailyNote(Nullable<System.DateTime> realDate) 
     { 
      var realDateParameter = realDate.HasValue ? 
       new ObjectParameter("RealDate", realDate) : 
       new ObjectParameter("RealDate", typeof(System.DateTime)); 

      return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<string>("GetDailyNote", realDateParameter); 
     } 
+6

Изменить 'yyyy-mm-dd' на' yyyy-MM-dd' 'mm' за минуты' MM' в течение нескольких месяцев см. Http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx –

+0

Thankyou Alessandro D'Andria за ваш ответ, я исправил его, но он поможет :( – gs11111

ответ

3

Ваш формат неправильный. Оно должно быть:

DateTime selectedDate1 = DateTime.ParseExact(
    selectedDate, 
    "yyyy-MM-dd HH:mm:ss", 
    CultureInfo.InvariantCulture 
); 

mm означает минуты, тогда как MM означает месяц, который является то, что вы хотите.

+0

Thankyou Darin! Я сделал это изменение, но никаких изменений :(Проверьте мой обновленный снимок экрана – gs11111

+0

Да, я вижу его. что-то не так с этим. 'selectedDate1' - это объект DateTime, который представляет правильную дату:' 4 сентября 2013 года, 4:09:31 PM', что точно соответствует вашей строке: '2013-09-04 16:09: 31. Функция ParseExact работает отлично и, как ожидалось. То, что вы смотрите, является внутренним представлением DateTime в вашем отладчике Visual Studio. –

+2

Да, это прекрасно работает, с вашего скриншота кажется, что вы сравниваете значение val ue в отладчике 'selectDate' и' selectDate1', но даже отладчик показывает в разных форматах, они одинаковы. –

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