如何以yyyyMM格式检查有效日期

Ref*_*din 4 .net c# string date

我有一个内部业务流程,我的财务部门运行.为了开始它们,他们输入格式为yyyyMM或的日期201009.我想检查该字符串中的有效日期,但到目前为止我什么也没得到.

我正在探索破坏字符串,取第4个并检查它们是在1990年到2050年之间(例如),然后是最后2个并检查它是在01和12之间.

有没有更好的办法?

Ode*_*ded 14

您可以使用DateTime.TryParseExact它来查看是否可以正确解析它:

bool isValid = false;
DateTime dateValue;
if(DateTime.TryParseExact("201009", "yyyyMM", CultureInfo.InvariantCulture, 
                       DateTimeStyles.None, out dateValue))
{
   // DateTime parsed, dateValue contains the parsed DateTime

   // Can validate dateValue against business rules at this point
   isValid = (dateValue <= DateTime.Now && dateValue >= DateTime.Now.AddYears(-5));
}
Run Code Online (Sandbox Code Playgroud)

如果您希望获得异常,可以使用DateTime.ParseExact:

// Next line throws exception if format not correct
DateTime.ParseExact("201009", "yyyyMM", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)