将字符串转换为自定义日期格式-C#Razor

its*_*rke 2 c# razor

我有一个存储事件的mySQL数据库,这些事件都有日期。我输入事件日期,它们以字符串形式在HTML中输出。

<ul id="latest-events">
    @{
        IEntity[] latestEvents = ViewBag.LatestEvents;
        foreach (IEntity event in latestEvents)
        {
        <li class="item">
            <span class="event-date">
                @event["DisplayDate"]
            </span>
            <a href="#">@event["Title"]</a>
            <span class="teaser">@Html.Raw(event["Teaser"])</span>
        </li>
        }
    }
</ul>
Run Code Online (Sandbox Code Playgroud)

目前,格式为 "10/31/2014 12:00:00 AM"

我希望这仅仅是Oct 31我认为的MMM d格式。

这样的事情可能吗?

var myDate = event["DisplayDate"];
var oldFormat = "M/d/yyyy h:m:s";
var newFormat = "MMM d";

var newDate = myDate.oldFormat.ConvertTo(newFormat);
Run Code Online (Sandbox Code Playgroud)

只是要清楚,我不知道C#,这就是为什么以上ConvertTo可能甚至不可能的原因。是否可以使用转换我的字符串DateTime?

Gre*_*reg 5

您应该能够简单地使用Razor来调用转换:

@item.Date.ToString("MMMM dd, yyyy")
Run Code Online (Sandbox Code Playgroud)

另一种方法:

[DisplayFormat(DataFormatString = "{MMMM 0:dd yyyy")]
public DateTime Date { get; set; }
@Html.DisplayFor(d => d.Date);
Run Code Online (Sandbox Code Playgroud)

您也可以这样做DateTime.ParseExact。

var date = DateTime.ParseExact(oDate, format, CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

另一个选择,希望对您有所帮助。