在我的mvc应用程序中,我以字符串格式存储了我的日期。 例如:10212013
但我想在我的用户界面中显示这个刺痛的日期例如:2013年10月21日
如何存档?是否可以为此目的使用DisplayFormat
。
修改
这就是我需要做的。
@Html.DisplayFor(model => DailyTransaction.MyDate)
MyDate的数据类型为字符串,因此显示为 10212013
但我需要将其显示为 10/21/2013
我可以在MVC项目视图中使用字符串格式
我尝试使用以下内容,但这对我也无效。
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
public string MyDate{ get; set; }
答案 0 :(得分:1)
尝试创建一个自定义的DisplayFormatAttribute,它将以正确的格式格式化字符串。见How to make configurable DisplayFormat attribute
编辑:再次查看您的问题后,您可以查看使用编辑器模板显示数据:请参阅:http://blogs.msdn.com/b/nunos/archive/2010/02/08/quick-tips-about-asp-net-mvc-editor-templates.aspx
答案 1 :(得分:0)
使用DateTime.ToString()
之类的;
YourDateTime.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);
例如;
DateTime d = DateTime.Today;
Console.WriteLine(d.ToString("MM/yy/yyyy", CultureInfo.InvariantCulture));
输出将是;
10/21/2013
这里有 DEMO
。
作为替代方案,您可以使用DisplayFormatAttribute.DataFormatString
之类的;
[DisplayFormat(DataFormatString="{0:MM/yy/yyyy}")]
答案 2 :(得分:0)
是的,你只需要使用插入功能。这是一个例子
string dateValue = "10212013";
string dateFormat = x.Insert(2, "/");
dateFormat = dateFormat.Insert(5, "/");
那就是......
答案 3 :(得分:0)
如果您确定保存的日期格式,可以使用Substring()
和Format()
方法,如下所示:
string.Format("{0}/{1}/{2}", myStringDate.Substring(0,2),
myStringDate.Substring(2,2),
myStringDate.Substring(4))
您可以将其应用于您的班级和 here is a demo ;
public class myModelClass
{
private string _MyDate;
public string MyDate
{
get {
return string.Format("{0}/{1}/{2}", _MyDate.Substring(0,2),
_MyDate.Substring(2,2),
_MyDate.Substring(4)); }
set { _MyDate = value; }
}
}
答案 4 :(得分:0)
您可以为特定于您的要求的各种数据类型创建自定义模板。
要创建自定义模板,请在/Views/Shared/DisplayTemplates
中创建一个新文件 - 将其命名为StringToDate.cshtml
。名称很重要,在下面的函数调用中使用。
接下来,在文件中添加代码以根据需要将字符串转换为日期格式。最简单的解决方案是插入/
个字符。
@model string
if (Model != null && Model.Length == 8)
{
@(Model.Insert(2,"/").Insert(5,"/"))
} else {
@("Err")
}
将以上内容添加到文件中并保存。如果基本格式检查失败,else部分只会输出错误。
接下来在您的视图中,您需要显示此值。只需使用
@Html.DisplayFor(model => model.StringDate, "StringToDate")