我有一个存储事件的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
转换我的字符串?
答案 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);