我有三个字符串/整数,分别是日、月和年。有没有办法检查它们是否采用有效的日期时间格式?我正在使用 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)
块来管理逻辑。