字符串'‎2019-04-01'未被识别为有效的日期时间。或者总是"false",如果尝试将其解析为日期时间



我在流畅验证(.net core(中将字符串转换为日期时间时出现以下异常

错误:系统格式异常:"字符串'2019-04-01'未被识别为有效的日期时间,或者如果尝试将其解析为日期时间,则总是得到"false"。

请求有效负载

{
"opened": "‎2019-04-01"
}

流畅验证器规则

RuleFor(x => x.Opened).Must(BeAValidDate).WithMessage("Invalid Opened date");

类函数

public bool BeAValidDate(string value)
{
DateTime output;
bool bOutput;
//option 1
bOutput = DateTime.TryParse(value, out output);
//option 2
//bOutput = DateTime.TryParseExact(value, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out output);
//option 3
//try
//{
//    output = DateTime.Parse(value);
//    bOutput = true;
//}
//catch {
//    bOutput = false;
//}
return bOutput;
}

尝试了上述所有三个选项,但总是得到错误/异常。

奇怪的是,如果我传递静态值,那么它可以正常工作,例如,如果我传递变量,则代替值,

例如
string value = '2019-04-01';

提前谢谢。

在解析变量并将其转换为日期时间之前,请尝试打印变量"value"。 您解析的字符串可能具有不需要的 caracter。

谢谢你们的回复!我不知道实际问题是什么,但是当我在邮递员请求中手动输入日期时,它起作用了。

最新更新