无法将类型bool隐式转换为System.DateTime(C#)

无法将类型bool隐式转换为System.DateTime(C#),c#,datetime,C#,Datetime,我正在尝试将字符串转换为datetime,以验证用户输入是否为日期 我得到的错误是: Cannot implicitly convert type bool to System.DateTime. 我在网上找了一段时间,找不到任何足够具体的东西来帮助我理解 代码: 提前感谢。DateTime.TryParse返回bool以指示解析是否成功。所以你应该这么做 System.DateTime.TryParse(argument, out _parsedDateArgument); DateTi

我正在尝试将
字符串转换为datetime,以验证用户输入是否为日期

我得到的错误是:

Cannot implicitly convert type bool to System.DateTime.  
我在网上找了一段时间,找不到任何足够具体的东西来帮助我理解

代码:


提前感谢。

DateTime.TryParse返回bool以指示解析是否成功。所以你应该这么做

System.DateTime.TryParse(argument, out _parsedDateArgument);
DateTime convertStringToDate =_parsedDateArgument

DateTime.TryParse返回bool以指示解析是否成功。所以你应该这么做

System.DateTime.TryParse(argument, out _parsedDateArgument);
DateTime convertStringToDate =_parsedDateArgument
该方法返回一个
bool
,通知您解析是否成功,而不是像该方法那样抛出异常。尝试这样做:

DateTime convertStringToDate;
bool isDate = DateTime.TryParse(argument, out convertStringToDate);
如果
参数
是日期,
convertStringToDate
将该日期作为
DateTime
包含,该方法返回一个
bool
,通知您解析是否成功,而不是像该方法那样引发异常。尝试这样做:

DateTime convertStringToDate;
bool isDate = DateTime.TryParse(argument, out convertStringToDate);
如果
参数
是一个日期,
convertStringToDate
将该日期包含为
日期时间
它应该是

DateTime convertStringToDate;

if(System.DateTime.TryParse(argument, out convertStringToDate))
{
    //Now you will have converted date in convertStringToDate
    if (convertStringToDate > DateTime.Now)
    {
       //do something
    }
}
else
{
    //argument not have a valid date
}
System.DateTime.TryParse将重新运行true,如果参数将具有要转换的有效日期字符串。转换后的日期将存储在out参数中。

应该是

DateTime convertStringToDate;

if(System.DateTime.TryParse(argument, out convertStringToDate))
{
    //Now you will have converted date in convertStringToDate
    if (convertStringToDate > DateTime.Now)
    {
       //do something
    }
}
else
{
    //argument not have a valid date
}

System.DateTime.TryParse将重新运行true,如果参数将具有要转换的有效日期字符串。转换后的日期将存储在out参数中。

DateTime.TryParse不返回DateTime值。它返回一个bool,指示是否可以解析它

改用

DateTime convertStringToDate;
if(DateTime.TryParse(argument, out convertStringToDate)){
   //ok value is good
}else{
  //Not ok value is not good
}

DateTime.TryParse不返回DateTime值。它返回一个bool,指示是否可以解析它

改用

DateTime convertStringToDate;
if(DateTime.TryParse(argument, out convertStringToDate)){
   //ok value is good
}else{
  //Not ok value is not good
}
查看-它返回一个
bool
,但有一个out参数用于解析结果:

DateTime dateTime;
bool success = DateTime.TryParse(text, out dateTime);
如果
success
为false,则表示无法解析文本。(因此,通常此时您会向用户显示一个错误。)

您已经获得了
out
参数-为什么希望得到两个不同的
DateTime
值(一个作为返回值,另一个来自
out
参数)

当您遇到这样的错误时,务必阅读文档作为诊断问题的第一步。

查看-它返回一个
bool
,但解析结果有一个out参数:

DateTime dateTime;
bool success = DateTime.TryParse(text, out dateTime);
如果
success
为false,则表示无法解析文本。(因此,通常此时您会向用户显示一个错误。)

您已经获得了
out
参数-为什么希望得到两个不同的
DateTime
值(一个作为返回值,另一个来自
out
参数)

当您遇到这样的错误时,一定要阅读文档作为诊断问题的第一步。

使用此文档

DateTime _parsedDateArgument;
bool success = System.DateTime.TryParse(argument, out _parsedDateArgument);
请始终记住
Tryparse
始终返回布尔值。

使用此选项

DateTime _parsedDateArgument;
bool success = System.DateTime.TryParse(argument, out _parsedDateArgument);

始终记住
Tryparse
始终返回布尔值。

Tryparse返回一个
bool
,只需使用
Parse
,或者将out变量分配给您拥有的新变量:

System.DateTime.TryParse(argument, out _parsedDateArgument);
DateTime convertStringToDate = _parsedDateArgument;
或者像这样:

DateTime convertStringToDate = DateTime.Parse(argument);

TryParse返回一个
bool
,改为使用
Parse
,或将out变量分配给您拥有的新变量:

System.DateTime.TryParse(argument, out _parsedDateArgument);
DateTime convertStringToDate = _parsedDateArgument;
或者像这样:

DateTime convertStringToDate = DateTime.Parse(argument);

添加以下命名空间

using System.Globalization;
创建CultureInfo类的对象

CultureInfo MyCI = new CultureInfo("en-US");
DateTime convertStringToDate = System.DateTime.TryParse(argument.ToString("MM/dd/yy", MyCI), out _parsedDateArgument);

添加以下命名空间

using System.Globalization;
创建CultureInfo类的对象

CultureInfo MyCI = new CultureInfo("en-US");
DateTime convertStringToDate = System.DateTime.TryParse(argument.ToString("MM/dd/yy", MyCI), out _parsedDateArgument);

你的日期格式是什么?谢谢你修改了我的格式(这里是新手)。你的日期格式是什么?谢谢你修改了我的格式(这里是新手)。谢谢,丹(和所有帮助过你的人)。谢谢,丹(和所有帮助过你的人)。