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

本文关键字:日期 MVC 显示 字符串 | 更新日期: 2023-09-27 18:36:09

在我的 mvc 应用程序中,我以字符串格式存储了我的日期。例如:10212013

但我想在我的 UI 中将这种刺痛显示为日期,例如:10/21/2013

如何存档??是否可以为此目的进行用户DisplayFormat

编辑
这是我需要做的。

@Html.DisplayFor(model => DailyTransaction.MyDate)  

MyDate 的数据类型是字符串,因此将显示为 10212013

但我需要将其显示为 10/21/2013

我可以在 MVC 项目的视图中使用字符串格式吗

我尝试使用以下方法,但这对我也不起作用。

[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
public string MyDate{ get; set; }

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

尝试创建自定义 DisplayFormatAttribute,该属性将以正确的格式设置字符串的格式。请参阅如何使可配置的显示格式属性

编辑:再次查看您的问题后,您可以查看使用编辑器模板来显示数据:请参阅此内容:http://blogs.msdn.com/b/nunos/archive/2010/02/08/quick-tips-about-asp-net-mvc-editor-templates.aspx

喜欢使用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}")]

是的,您只需要使用插入功能。 这是示例

string dateValue = "10212013";          
string dateFormat = x.Insert(2, "/");
dateFormat = dateFormat.Insert(5, "/");

就这样。。。

如果您确定日期的保存格式,则可以使用以下Substring()Format()方法:

string.Format("{0}/{1}/{2}", myStringDate.Substring(0,2),
                             myStringDate.Substring(2,2),
                             myStringDate.Substring(4))

您可以将其应用于您的类,这是一个演示;

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; }
    }
}

您可以为特定于您的要求的各种数据类型创建自定义模板。

要创建自定义模板,请在/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")