我在流畅验证(.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。
谢谢你们的回复!我不知道实际问题是什么,但是当我在邮递员请求中手动输入日期时,它起作用了。