首页 > 解决方案 > 如果我更改要解析的日期,则字符串不会被识别为有效的 DateTime

问题描述

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

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

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

我试过Parse,ParseExactTryParse.
如果日期设置为 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

标签: datetimemodel-view-controllerrazor-pages

解决方案


试试下面的代码

@{
    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
}

推荐阅读