此处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?'到'字符串'"
答案 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";
根据我的说法,这是正确的。