@foreach (DataRow row in TabData.Tables[0].Rows)
{
@Html.Raw(Helper.FormatData.(row["DATE"].ToString().Trim(),null,true))}
我得到的结果是03/07/2015 12:00 am
如果第一个选项不可能,我想得到的是2015/03/07
年月日或月日。
谢谢
这是完整的代码
@foreach (DataRow row in TabData.Tables[0].Rows){
string newDate = "";
if(TabData.Tables[0].Rows.Count >0)
{
if(row["SAVEDATE"].ToString().Trim() != "3/1/2017 12:00:00 AM")
{
newDate = ((DateTime)row["SAVEDATE"]).ToString("d");
}
else
{
newDate=" Proposed 7/1/2017";
}
}
<tr>
@Html.Raw(Helper.FormatData(DateTime.Parse(newDate.ToString()).ToString("yyyy/MM/dd").Trim(),null,true)) </tr>}
因此,对于值为“3/1/2017 12:00:00 am”的行,我想显示建议的日期。但对于所有其他值,我想得到日期。不是时间。
答案 0 :(得分:2)
使用DateTime
s overload for ToString
:
DateTime date = DateTime.Now;
var stringDate = date.ToString("yyyy/MM/dd");
更改为:
@foreach (DataRow row in TabData.Tables[0].Rows)
{
@Html.Raw(DateTime.Parse(row["DATE"]).ToString("yyyy/MM/dd"));
我认为如果你想保留"Proposed 7/1/2017"
文本,然后将日期解析为if语句中已经正确的字符串格式,然后jus使用它:
@foreach (DataRow row in TabData.Tables[0].Rows){
string newDate = "";
if(TabData.Tables[0].Rows.Count >0)
{
newDate = (row["SAVEDATE"].ToString().Trim() != "3/1/2017 12:00:00 AM") ?
((DateTime)row["SAVEDATE"]).ToString("yyyy/MM/dd") :
" Proposed 7/1/2017";
}
<tr>
@Html.Raw(newDate) </tr>
}
答案 1 :(得分:0)
由于您正在使用Razor,您可以执行以下操作:
@Html.Raw(row["Date"].ToShortDateString())
@Html.Raw(row["Data"].ToString("MM/dd/yyyy");
另一种方法是在[DisplayFormat(DataFormatString="{0:dd/MM/yyyy}")]
答案 2 :(得分:0)
是的,有可能,您只需要使用ToString方法重载时间格式参数:
@foreach (DataRow row in TabData.Tables[0].Rows)
{
DateTime result;
@Html.Raw(Helper.FormatData(DateTime.TryParse(row["DATE"].ToString(), out result) ? result.ToString("yyyy/MM/dd", CultureInfo.InvariantCulture) : row["DATE"].ToString().Trim(),null,true))
}