Показывать дату varchar как D / M / Y? - PullRequest
1 голос
/ 01 февраля 2012

Я вытаскиваю дату из базы данных, и это varchar.Однако в базе данных он отформатирован Y / M / D /.Мне нужно, чтобы сделать на переднем конце D / M / Y.Я принес его в Linq, используя Entity Framework.Это выглядит так:

var startdateParam = new ObjectParameter ("StartDate", typeof (string));

Затем я вызываю хранимую процедуру:

  var webinarProducts = mgr.GetWebinars(groupCodeParam, startdateParam).ToList();

Iзатем назначьте его в мой список продуктов:

webinar.StartDate = startdateParam.Value.ToString ();

Наконец, в файле cshtml (я создаю это в MVC3) я отображаю вот так:

@Model.StartDate

Но когда я публикую страницу, она просто форматируется как странная дата в таблице данных Y / M / D.

Я пытался преобразовать / проанализировать / отформатировать это по всему коду, но я продолжаю получать ошибки.Какой лучший способ конвертировать это в любой формат даты, который я хотел бы?

Ответы [ 2 ]

3 голосов
/ 01 февраля 2012

Использовать встроенный синтаксический анализ?

http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx

Форматировать строки здесь: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

webinar.StartDate = DateTime.ParseExact(startdateParam.Value.ToString(), "yyyy/MM/dd", CultureInfo.InvariantCulture);

Затем в интерфейсе можно указать

@Model.ToString("dd/MM/yyyy")
1 голос
/ 01 февраля 2012

Если вы можете изменить схему, я бы использовал столбец DATETIME вместо varchar.

Если нет, я бы использовал встроенные функции DateTime в C #. Этот код должен работать:

DateTime dateObj = DateTime.Parse(startdateParam.Value.ToString());
string outDateString = dateObj .ToString("dd/MM/yy");

Надеюсь, это поможет.

...