如果输入为空,如何转换为 DateTime 但具有默认值?

CJ7*_*CJ7 5 .net c# datetime tryparse

如果输入为空,什么.NET函数将转换为 aDateTime但具有默认值?

例如。

DateTime dtTest = Convert.ToDateTime(getDateString());
Run Code Online (Sandbox Code Playgroud)

如果getDateString()返回空字符串则Convert.ToDateTime抛出异常。

我怎样才能使用默认值"9:00AM"而不是空字符串?这是TryParse可以使用的地方吗?

Hab*_*bib 7

DateTime.TryParse如果解析失败,您可以使用“最小日期”来分配DateTime.MinValue.AddHours(9)获取时间。(9:00AM)

string str = "";
DateTime temp;
DateTime dt = DateTime.TryParse(str, out temp) ? temp : DateTime.MinValue.AddHours(9);
Run Code Online (Sandbox Code Playgroud)

对于上面的代码,您的dt对象将保存{01/01/0001 9:00:00 AM}


Rob*_*ert 5

我使用了一种叫做三元语句的东西。您可以在此处查看示例:MSDN

    string myDate = getDateString();
    DateTime dtTest = Convert.ToDateTime(String.IsNullOrEmpty(myDate) ? "my default value" : myDate);
Run Code Online (Sandbox Code Playgroud)

三元语句如下:

String.IsNullOrEmpty(myDate) ? "my default value" : myDate
Run Code Online (Sandbox Code Playgroud)

可以读作如下:

如果字符串为 null 或空,则使用“我的默认值”,否则使用 myDate。