错误 - 无法从System.DateTime转换?'到'字符串' C#

时间:2016-11-09 10:10:13

标签: c# linq datetime

此处LogInTime和LogOutTime是datetime数据类型。如何在c#?

中转换关于Datetime的字符串格式代码

LogOutTime和LogInTime都是datetime数据类型。

new
{             
    AccessDate = (DateTime.TryParse(x.LogOutTime, out parsed)) ? parsed.ToShortDateString() : "Unknown",
    AccessTimeFrame = (DateTime.TryParse(x.LogOutTime, out parsed)) ? parsed.ToShortTimeString() : "Unknown"
}

现在发生了错误。 "无法转换为System.DateTime?'到'字符串'"

3 个答案:

答案 0 :(得分:4)

'Unknown'更改为DateTime.MinValue。 我假设您的问题正在发生,因为您正在尝试将datetime变量的值设置为字符串。

答案 1 :(得分:2)

您需要先使用.Value(因为它可以为空)。

new
{             
    AccessDate = (DateTime.TryParse(x.LogOutTime, out parsed)) ? parsed.Value.ToShortDateString() : "Unknown",
    AccessTimeFrame = (DateTime.TryParse(x.LogOutTime, out parsed)) ? parsed.Value.ToShortTimeString() : "Unknown"
}

答案 2 :(得分:0)

DateTime.TryParse此方法的第一个参数必须是String类型,您只传递DateTime对象。将x.LogOutTime转换为String。

浏览此链接MSDN

DateTime parsedDateTimeObj;
AccessDate = (DateTime.TryParse(x.LogOutTime.ToString(), out parsedDateTimeObj)) ? parsedDateTimeObj.ToShortDateString() : "Unknown";
根据我的说法,这是正确的。