如何将纯字符串显示为日期mvc

时间:2013-10-21 11:37:06

标签: c# asp.net-mvc datetime

在我的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; }

5 个答案:

答案 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")