【发布时间】:2011-09-29 07:29:19
【问题描述】:
我需要验证某些变量是否可以创建有效的日期时间,如果可以,则使其忽略它而不抛出异常。
我有以下代码
int y, m, d, h, mi, s, tz;
ogrFeature.GetFieldAsDateTime(field, out y, out m, out d, out h, out mi, out s, out tz);
fdr[fdrIndex++] = new DateTime(y, m, d, h, mi, s);
如果(来自 MSDN),目前日期时间的构造将失败
年份小于 1 或大于 > 9999。
月小于 1 或大于 > 12。
day 小于 1 或大于 > 月的天数。
小时小于 0 或大于 > 23。
分钟小于 0 或大于 > 59。
秒小于 0 或大于 > 59。
毫秒小于 0 或大于 999。
我已经看过了,似乎没有任何特定的方法可以验证这种输入。
有没有一种很好的方法来验证这个输入,而不必使用一大堆 if 或将它包装在一个讨厌的 try/catch 中并捕获 ArgumentOutOfRangeException?
【问题讨论】:
-
将其设为字符串并使用
DateTime.TryParse -
查看我的(更新的)答案。