如果我更改要解析的日期,则无法将字符串识别为有效的DateTime

时间:2019-07-15 13:47:33

标签: datetime model-view-controller razor-pages

我的剃刀代码中有两个if语句。它们都以"hardcoded month/hardcoded day/" + DateTime.Now.Year.ToString()格式解析日期,并且如果日期介于两天之间,则显示操作链接。

当第一个比较日期设置为"10/01/" + DateTime.Now.Year.ToString()时,它可以完美工作。
如果将其更改为"07/01",则会得到:

  

FormatException:字符串未被识别为有效的DateTime

我尝试了ParseParseExactTryParse
如果将日期设置为7月1日,则无论使用7/107/01还是7/01,这三种方法都会失败。

这有效:

@if (DateTime.Now > DateTime.Parse(("10/1/" + DateTime.Now.Year.ToString())) && DateTime.Now < DateTime.Parse("03/31" + (DateTime.Now.Year + 1)))
{
    @:Action
}

这不是:

@if (DateTime.Now > DateTime.Parse(("7/1/" + DateTime.Now.Year.ToString())) && DateTime.Now < DateTime.Parse("03/31" + (DateTime.Now.Year + 1)))
{
    @:Action
}

我希望7/1/2019解析为与10/1/2019相同的一年。

1 个答案:

答案 0 :(得分:1)

尝试以下代码

@{
    DateTime dateTime1 = DateTime.Parse("7/1/" + DateTime.Now.Year.ToString());
    string yr = (DateTime.Now.Year + 1).ToString();
    DateTime dateTime2 = DateTime.Parse("03/31/" + yr);
}

@if (DateTime.Now > dateTime1 && DateTime.Now < dateTime2)
{
    @:Action
}