将String转换为Nullable DateTime

Nal*_*526 39 c# datetime nullable

可能重复:
如何将DateTime.TryParse与Nullable <DateTime>一起使用?

我有这行代码

DateTime? dt = Condition == true ? (DateTime?)Convert.ToDateTime(stringDate) : null;
Run Code Online (Sandbox Code Playgroud)

这是一个字符串转换为可空的DateTime正确的方法,或者是有没有到转换的直接方法,转换它为DateTime,再次铸造它可空的DateTime?

Rah*_*thi 69

你可以试试这个: -

 DateTime? dt = string.IsNullOrEmpty(date) ? (DateTime?)null : DateTime.Parse(date);
Run Code Online (Sandbox Code Playgroud)

  • 我可能会建议使用`string.IsNullOrEmpty(date)`而不是`date == null`. (3认同)
  • 如果传递既不是空的也不是有效日期的字符串,那将无效.有关更好的解决方案,请参阅http://stackoverflow.com/questions/192121/how-do-i-use-datetime-tryparse-with-a-nullabledatetime (2认同)

cuo*_*gle 13

您可以构建一个方法来执行此操作:

public static DateTime? TryParse(string stringDate)
{
    DateTime date;
    return DateTime.TryParse(stringDate, out date) ? date : (DateTime?)null;
}
Run Code Online (Sandbox Code Playgroud)

  • 这不起作用,因为日期不是可以为空的日期时间. (2认同)
  • @bret:你试过这个吗? (2认同)