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

时间:2014-10-24 14:58:37

标签: 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>

目前,格式为"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);

为了清楚起见,我不知道C#,这就是上述ConvertTo可能无法实现的原因。是否可以使用DateTime转换我的字符串?

3 个答案:

答案 0 :(得分:4)

您应该只需使用 Razor 来调用转换:

@item.Date.ToString("MMMM dd, yyyy")

另一种方法:

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

您也可以DateTime.ParseExact

var date = DateTime.ParseExact(oDate, format, CultureInfo.InvariantCulture);

另一种选择,希望这会有所帮助。

答案 1 :(得分:1)

如果你有一个DateTime对象,你可以这样使用它:

 DateTime myDate = .... ;
 string dateToDisplay = myDate.ToString(newFormat);

(顺便说一下,我不知道“MMM d”是否是有效的格式)
(btw2,使用var声明所有变量都是一个坏习惯。在你知道变量类型的情况下读取代码更容易,而不必查看函数的返回来知道你正在使用的变量的类型。 )

答案 2 :(得分:0)

您需要解析它,这会产生DateTime,然后您可以使用.ToString()

以任何方式格式化
var dateTime = DateTime.ParseExact(myDate, oldFormat, CultureInfo.InvariantCulture);
var newDate = dateTime.ToString(newFormat);