我有三个字符串/整数,分别是日、月和年。有什么方法可以检查它们是否采用有效的 DateTime 格式?我正在使用 ASP.NET。
当用户注册时,他输入月、日和年。
我曾经将三个变量转换为字符串并尝试解析以检查它是否合法,但唯一的问题是在不同的机器上运行相同的项目,因为一些不同的机器使用不同的日期格式。
这个怎么样:
private bool IsValidDate(int year, int month, int day)
{
if (year < DateTime.MinValue.Year || year > DateTime.MaxValue.Year)
return false;
if (month < 1 || month > 12)
return false;
return day > 0 && day <= DateTime.DaysInMonth(year, month);
}
如果您已经将日、月和年作为三个单独的整数,则可以直接使用DateTime 的构造函数之一,而不是将它们放入字符串中并将其重新解析为 DateTime。
DateTime mydate;
myDate = new DateTime(year, month, day);
ArgumentOutOfRangeException
如果日期无效,这将抛出一个错误,因此您应该将其包装在 try/catch 块中,并catch(ArgumentOutOfRangeException e)
在您的日期没有有效格式时使用块来管理逻辑。