我能否重写Convert.ToDateTime()
这个方法?我不想重复一百次以上检查字符串是否为空,如果非空则将其转换为日期时间格式。我能否重写此函数以检查它是否为空,如果是,则返回null,否则进行转换。
// TODO: Think of a better class name - this one sucks :)
public static class MoreConvert
{
public static DateTime? ToDateTimeOrNull(string text)
{
return text == null ? (DateTime?) null : Convert.ToDateTime(text);
}
}
DateTime?
,因为DateTime
本身是一个不可为空的值类型。DateTime.ParseExact
而不是Convert.ToDateTime
——我从来没有喜欢过它的宽容、与当前区域设置有关的行为。不过这取决于数据来自哪里。你知道格式吗?它将在用户的文化中呈现,还是在不变的文化中呈现?(基本上,它是用户输入的文本,还是某种机器生成的格式?).IsNullOrEmpty
进行检查。 - V4VendettaToDateTime
无法被重写,但您可以使用 TryParse
:
bool valid = DateTime.TryParse("date string", out d);
如果您确定您的字符串格式正确,可以使用DateTime.Parse
。
DateTime.TryParse
吗? - V4Vendetta