如何将纯字符串显示为日期 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; }
尝试创建自定义 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")