如何从C#for循环中删除日期

时间:2017-04-18 14:19:09

标签: c# datetime

@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”的行,我想显示建议的日期。但对于所有其他值,我想得到日期。不是时间。

3 个答案:

答案 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))
}