将varchar日期显示为D / M / Y?

时间:2012-01-31 21:21:38

标签: c# sql asp.net-mvc-3 datetime-format

我从数据库中提取日期,它是一个varchar。但是在数据库中它的格式为Y / M / D /。我需要它在前端渲染一个D / M / Y.我使用Entity框架将它带入Linq。它看起来像这样:

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

然后我调用存储过程:

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

然后我将其分配到我的产品列表中:

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

最后,在cshtml文件中(我在MVC3中构建它)我显示如下:

  • @ Model.StartDate
  • 但是当我发布页面时,它只是格式化为数据表Y / M / D中的奇怪日期。

    我试图在我的代码中转换/解析/格式化,但我一直在收到错误。将此转换为我想要的任何日期格式的最佳方法是什么?

    2 个答案:

    答案 0 :(得分:3)

    使用内置解析?

    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 :(得分:1)

    如果您可以更改架构,我会使用DATETIME列而不是varchar。

    如果没有,我会在C#中使用内置的DateTime函数。这段代码应该有效:

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

    希望有所帮助。