我从数据库中提取日期,它是一个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中构建它)我显示如下:
但是当我发布页面时,它只是格式化为数据表Y / M / D中的奇怪日期。
我试图在我的代码中转换/解析/格式化,但我一直在收到错误。将此转换为我想要的任何日期格式的最佳方法是什么?
答案 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");
希望有所帮助。